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)
结果:
["风铃草"、"中国粉"、"水仙花"、"月见草"、"法国万寿菊"、"鸢尾花"、"安妮女王的蕾丝"、"红热扑克"、"金鱼草"、"向日葵"、"老虎百合"]
["仙女座"、"绣球花"、"日本山茶花"、"薰衣草"、"丁香"、"木兰"、"牡丹"、"金缕梅"]