5 回答

TA貢獻1801條經驗 獲得超8個贊
用連字符拆分時,您需要查看第二項。您還應該使用 listappend方法,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- Shrub”,但與此不匹配。如果這不僅僅是錯字,請修復它,然后更喜歡使用更i.split(" - ")清晰的字符串。

TA貢獻1839條經驗 獲得超15個贊
正如 Thierry Lathuille 指出的那樣,您還剩下空格。首先嘗試替換所有空格:
for i in data: i.replace(" ", "") x=i.split("-")

TA貢獻1883條經驗 獲得超3個贊
您可以使用stripPython 字符串的方法來清除無用空間中的數據:
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)

TA貢獻1797條經驗 獲得超6個贊
你可以試試
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("-")
if "Shrub" == x[1].strip():
shrubs.append(x[0])
elif "Flower" == x[1].strip():
flowers.append(x[0])
print(shrubs)
print(flowers)
輸出
['Andromeda ', 'Hydrangea ', 'Japanese Camellia ', 'Lavender ', 'Lilac', 'Magnolia ', 'Peony ', 'Witch Hazel ']
['Bellflower ', 'China Pink ', 'Daffodil ', 'Evening Primrose ', 'French Marigold ', 'Iris ', "Queen Anne's Lace ", 'Red Hot Poker ', 'Snapdragon ', 'Sunflower ', 'Tiger Lily ']
那個原始代碼沒有

TA貢獻1860條經驗 獲得超9個贊
您忘記了語句中的空格split:
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)
添加回答
舉報