提问者:小点点

为什么我的列表在使用拆分功能后是空的?


我试着把花和灌木从给定的数据中分离出来,分成两个单独的列表。 下面是我的代码:

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)

名单上的灌木和花显示是空的。 为什么??


共3个答案

匿名用户

正如Thierry Lathuille指出的那样,您还剩下空白。 尝试先替换所有空格:

for i in data:
    i.replace(" ", "")
    x=i.split("-")

匿名用户

您忘记了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)

匿名用户

当你用连字符拆分时,你需要看第二项。 还应该在extend上使用listappend方法,这样就不会追加字符序列。

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(”-“)以获得更干净的字符串。