如何从列表中获取元素并创建新列表

时间:2017-10-03 17:44:48

标签: python python-3.x

我的任务是从字符串中创建一个列表。然后将所有元素从列表移动到另一个列表并再次将其转换为字符串。 这就是我所做的:

CLImport.exe.config

但我收到此错误消息: IndexError:列表索引超出范围

提前谢谢!

5 个答案:

答案 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循环仍然会遍历最初的句子长度。