2014-06-16 52 views
-5

任何方式变换成LIST_1 ?: list_2列表转换/变换

list_1 = [('h', 'e', 'l', 'l', 'o'), ('w', 'o', 'r', 'd')] 

list_2 = ['hello', 'word'] 
+2

你试过了什么?您是否阅读过[字符串方法]的文档(https://docs.python.org/2/library/stdtypes.html#string-methods)? – Bakuriu

+0

正如@Bakuriu所说,你应该在询问之前尝试,并在你的问题中发布你试图解决问题的方法。 – sharcashmo

回答

3

这是数据。

data = [('h', 'e', 'l', 'l', 'o'), ('w', 'o', 'r', 'd')] 

让我们从基础开始。我们只是试图在一个元组上工作。以下循环将打印出元组中的每个字符串。

element = ('h', 'e', 'l', 'l', 'o') 
for character in element: 
    print(character) 

看看输出,我们可以看到一个简单的方法来创建组合的字符串。只需在开头声明一个空字符串,然后将所有字符添加到它。

word = '' 
for character in element: 
    word = word + character 
print(word) 

结果看起来不错,但有一个更好的方法来做到这一点。字符串有一个我们可以在这里使用的join方法。

print(''.join(element)) 

您将得到与以前的循环相同的结果:'hello'

现在我们必须扩展我们的代码以使用我们数据中的所有元组。只需在外面添加另一个循环。

for element in data: 
    print(''.join(element)) 

要创建一个新列表,我们使用我们以前使用的模式构建字符串。我们在循环前创建一个空列表,并将join的结果添加到它。

result = [] 
for element in data: 
    result.append(''.join(element)) 
print(result) 

这样的代码需要list comprehension

result = [''.join(element) for element in data] 
print(result) 

就这样。

+0

不错。转发upvotes到@Matthias ... – Brionius

+0

谢谢。我感到迫切需要解释如何开始解决这样的问题。 – Matthias

5
list_2 = [''.join(word) for word in list_1]