如何删除字符串的一部分?

匆匆忙忙

我有一个美国城市列表(一些元素:)'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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章