首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的列表在使用拆分函数后是空的?

为什么我的列表在使用拆分函数后是空的?
EN

Stack Overflow用户
提问于 2020-07-07 14:38:00
回答 5查看 159关注 0票数 0

我正在尝试将和灌木从给定的数据中分离出来,形成两个单独的列表。这是我的代码:

代码语言:javascript
复制
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)

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

EN

回答 5

Stack Overflow用户

发布于 2020-07-07 14:42:18

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

代码语言:javascript
复制
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(" - ")来获得更干净的字符串。

票数 1
EN

Stack Overflow用户

发布于 2020-07-07 14:42:38

正如蒂埃里·莱斯维尔所指出的,你还有空白。试着先替换所有的空白:

代码语言:javascript
复制
for i in data:
    i.replace(" ", "")
    x=i.split("-")
票数 1
EN

Stack Overflow用户

发布于 2020-07-07 14:59:25

您可以使用Python的strip方法从无用的空格中清除数据:

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62777762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档