我的任务是从字符串中创建一个列表。然后将所有元素从列表移动到另一个列表并再次将其转换为字符串。 这就是我所做的:
CLImport.exe.config
但我收到此错误消息: IndexError:列表索引超出范围
提前谢谢!
答案 0 :(得分:1)
def string_list(str):
result = []
sentence = str.split(" ")
for i in range(len(sentence)):
result.append(sentence[i])
return " ".join(result)
print(string_list("Hey, how's it going?"))
答案 1 :(得分:1)
def string_list(sentence):
result = []
sentence = sentence.split(" ")
for word in sentence:
result.append(word)
sentence = []
return " ".join(result)
print(string_list("Hey, how's it going?"))
我不清楚为什么要将单词从一个列表移动到另一个列表,但是在python中你可以使用循环机制而不是使用可能导致麻烦的索引。
希望我提供的答案能解决您的问题。
答案 2 :(得分:1)
使用list.pop
清空输入数据
def string_list(sentence: str) -> str:
result = []
sentence = sentence.split(" ")
if sentence:
word = sentence.pop()
result.append(word)
while word:
if not sentence:
break
word = sentence.pop()
result.append(word)
return ' '.join(result)
答案 3 :(得分:1)
如果您愿意,可以尝试列表理解:
string_1="Hey, how's it going?"
origional_list=[i for i in string_1]
string_to_list=[i for i in origional_list if i!=',' and i!="'" and i!=' ']
print("String to list : {}".format(string_to_list))
list_to_string=("".join(origional_list))
print("list to String : {}".format(list_to_string))
输出:
String to list : ['H', 'e', 'y', 'h', 'o', 'w', 's', 'i', 't', 'g', 'o', 'i', 'n', 'g', '?']
list to String : Hey, how's it going?
答案 4 :(得分:1)
因为在每次迭代时都会删除一个句子项,所以它的长度会减少。但是你的for循环仍然会遍历最初的句子长度。