new_list =[]
fieldscopy = ['donkey donkey2 donkey3']
print(fieldscopy)
for i in fieldscopy:
new_list.append(i.rsplit( )[0])
print(new_list)
输出
['donkey']
而不是
['donkey', 'donkey2', 'donkey3]
关于我获得后者结果的简单方法的任何想法,而不仅仅是第一个元素。假设在空格(/ t)处分开但不是出于某种原因。
答案 0 :(得分:2)
通过使用[0]
,您只选择拆分的第一个元素。如果您想要所有元素,只需获取split
本身的结果即可。这是一种方式:
new_list = []
fieldscopy = ['donkey donkey2 donkey3']
print(fieldscopy)
for i in fieldscopy:
new_list.extend(i.rsplit())
print(new_list)
您的代码还有许多其他可疑功能。如果它只有一个元素,为什么要迭代fieldscopy
?您是否在rsplit( )
的括号中放置了多个空格,以为它会在多个空格中分割? (它赢了。)为什么你使用rsplit
而不是split
呢?我建议你阅读Python tutorial以及你正在调用的函数的文档。
答案 1 :(得分:1)
import re
new_list =[]
fieldscopy = ['donkey donkey2 donkey3']
new_list = re.findall(r'(\w+)',fieldscopy[0])
print(new_list)
['donkey', 'donkey2', 'donkey3']
答案 2 :(得分:0)
你的逻辑错了。您正在遍历fieldscopy中的所有元素(正好是1个字符串)。然后将第一个单词添加到新列表中,这会产生“驴”
正确的是:
for i in fieldscopy.split( " "):
newlist.append(i)
然而,这是不必要的。你可以这样做:
newlist = fieldscopy.split(" ")