List 将两个字符串作为单个元素附加到Python列表中
我想将两个字符串作为单个元素附加到Python列表中。这是我的问题的一个简化示例:List 将两个字符串作为单个元素附加到Python列表中,list,python-2.7,append,element,List,Python 2.7,Append,Element,我想将两个字符串作为单个元素附加到Python列表中。这是我的问题的一个简化示例: lowerCase = [['a', 'b', 'c', 'd', 'e']] newList = [] # Append two pieces of data as a single element i = 1; for letter in lowerCase[0]: [newList.append(letter), newList.append(i)] i += 1 print newLi
lowerCase = [['a', 'b', 'c', 'd', 'e']]
newList = []
# Append two pieces of data as a single element
i = 1;
for letter in lowerCase[0]:
[newList.append(letter), newList.append(i)]
i += 1
print newList
print len(newList)
我得到的是:
['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]
10
我想要的是:
[['a', 1], ['b', 2], ['c', 3], ['d', 4], ['e', 5]]
5
问题出在
for
循环中。应该这样做:
for letter in lowerCase[0]:
newList.append([letter, i])
i += 1
问题出在
for
循环中。应该这样做:
for letter in lowerCase[0]:
newList.append([letter, i])
i += 1
你需要的是
newList.append([letter, i])
你需要的是
newList.append([letter, i])
查看您当前的代码:
[newList.append(letter), newList.append(i)]
此行从这两个方法调用的输出中创建一个列表。实际上,您并没有使用列表,所以您基本上是:
newList.append(letter)
newList.append(i)
您希望将两个元素同时附加到一个iterable中:
newList.append([letter, i])
newList.append((letter, i)) # Tuples are faster to create, as they're immutable
另外,您通常不需要手动创建和增加i
变量。只需使用枚举
:
newList = []
for index, letter in enumerate(lowerCase[0], start=1):
newList.append((letter, index))
或使用列表:
newList = [(letter, index) for index, letter in enumerate(lowerCase[0], start=1)]
查看您当前的代码:
[newList.append(letter), newList.append(i)]
此行从这两个方法调用的输出中创建一个列表。实际上,您并没有使用列表,所以您基本上是:
newList.append(letter)
newList.append(i)
您希望将两个元素同时附加到一个iterable中:
newList.append([letter, i])
newList.append((letter, i)) # Tuples are faster to create, as they're immutable
另外,您通常不需要手动创建和增加i
变量。只需使用枚举
:
newList = []
for index, letter in enumerate(lowerCase[0], start=1):
newList.append((letter, index))
或使用列表:
newList = [(letter, index) for index, letter in enumerate(lowerCase[0], start=1)]