我正在尝试将和灌木从给定的数据中分离出来,形成两个单独的列表。这是我的代码:
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 i in data:
x=i.split("-")
print(x)
if "Shrub" in x:
shrubs.extend(x)
elif "Flower" in x:
flowers.extend(x)
print(shrubs)
print(flowers),灌木,和的名单显示是空的。为什么??
发布于 2020-07-07 14:42:18
当您按连字符拆分时,您需要查看第二项。您还应该在append上使用list extend方法,这样就不会追加字符序列。
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 i in data:
flower, flower_type = i.split("-")
print(flower)
if "Shrub" in flower_type:
shrubs.append(flower)
elif "Flower" in flower_type:
flowers.append(flower)
print("Shrubs")
print(shrubs)
print("Flowers")
print(flowers)使用i.split(" - ")会更好,但是只有一个条目“Lilac-灌木”与之不匹配,如果这不仅仅是一个错误,那么修复它,然后使用i.split(" - ")来获得更干净的字符串。
发布于 2020-07-07 14:42:38
正如蒂埃里·莱斯维尔所指出的,你还有空白。试着先替换所有的空白:
for i in data:
i.replace(" ", "")
x=i.split("-")发布于 2020-07-07 14:59:25
您可以使用Python的strip方法从无用的空格中清除数据:
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 i in data:
x = [elm.strip() for elm in i.split("-")]
print(x)
if "Shrub" in x:
shrubs.extend(x)
elif "Flower" in x:
flowers.extend(x)
print(shrubs)
print(flowers)https://stackoverflow.com/questions/62777762
复制相似问题