打印前如何从列表中删除"- Flowers "和"- Shrubs"


data = [
"Andromeda - Shrub",
"Bellflower - Flower",
"China Pink - Flower",
"Daffodil - Flower",
"Evening Primrose - Flower",
"French Marigold - Flower",
"Hydrangea - Shrub",
"Iris - Flower",
"Japanese Camellia - Shrub",
"Lavender - Shrub",
"Lilac - Shrub",
"Magnolia - Shrub",
"Peony - Shrub",
"Queen Anne's Lace - Flower",
"Red Hot Poker - Flower",
"Snapdragon - Flower",
"Sunflower - Flower",
"Tiger Lily - Flower",
"Witch Hazel - Shrub",
]
flowers = []
shrubs = []
for plant in data:
if "- Flower" in plant:
flowers.append(plant)
else:
shrubs.append(plant)
print(flowers)
print(shrubs)

将其拆分为-,然后进行第一次拆分

for plant in data:
plant_name, category = plant.split(' -', 1)
if "Flower" in category:
flowers.append(plant_name)
else:
shrubs.append(plant_name)

您可以使用:

for plant in data:
to_append = plant.split(" - ")[0]
if "- Flower" in plant:
flowers.append(to_append)
else:
shrubs.append(to_append)

这将使用 "-" 拆分plant并创建一个数组,然后将该数组的第一个索引保存到to_append变量中。 因此,例如,如果您采用"Andromeda - Shrub"这将创建一个数组{"Andromeda", "Shrub"}并且其 0 索引将被"Andromeda",然后将其添加到新数组中。

有多种方法可以做到这一点,其中之一是使用 replace() 函数,如下所示:

if "- Flower" in plant:
name = plant.replace("- Flower", "")
flowers.append(name)
print([flower[:flower.index(' - Flower')] for flower in flowers])

打印时省略字符串中的"-花"后缀。列表理解非常有用,我强烈建议您最终检查一下

flowers = [x.split(' - ')[0] for x in data if x.split(' - ')[1] == 'Flower']
shrubs = [x.split(' - ')[0] for x in data if x.split(' - ')[1] == 'Shrub']
print(flowers)
print('--------')
print(shrubs)

结果:

["风铃草"、"中国粉"、"水仙花"、"月见草"、"法国万寿菊"、"鸢尾花"、"安妮女王的蕾丝"、"红热扑克"、"金鱼草"、"向日葵"、"老虎百合"]

["仙女座"、"绣球花"、"日本山茶花"、"薰衣草"、"丁香"、"木兰"、"牡丹"、"金缕梅"]

最新更新