我有一个美国城市列表(一些元素:)'Midlothian, VA', 'Ridley Park, PA', 'Johannesberg, CA', 'Sylva, NC', 'Kewwannee, IL', 'Superior, WI', 'Brewster, OH', 'Stillwater, MN'
。我一直在尝试删除逗号后的任何内容(因为我只想要名称,而不是状态)。我尝试了很多东西,但我无法让它工作。例如:
for i in US_cities_list:
i = i.split(",")
if len(i) == 2:
x = i.pop(1)
i = x
这仍然给了我相同的输出('Midlothian, VA', 'Ridley Park, PA', 'Johannesberg, CA', 'Sylva, NC', 'Kewwannee, IL', 'Superior, WI', 'Brewster, OH', 'Stillwater, MN'
)。任何帮助将不胜感激,谢谢。
您的解决方案的问题是分配i = x
不会修改原始列表。您可以通过print(US_citites_list)
在循环中添加来看到这一点,并观察到列表永远不会改变。
一种解决方案是使用修改后的字符串构建一个新列表:
cities_only = [i.split(",")[0] for i in US_cities_list]
请注意,我利用了i.split()
总是会返回至少一个元素的列表这一事实。如果字符串中没有逗号,则只有一个元素。如果有逗号,那么将有两个元素。这意味着无需检查i
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句