python 将列表中的元素追加到列表中
python appending elements to a list from a list
我想创建一个列表,从 python 中的 2 个单独列表中交替添加元素。
我有以下想法,但它似乎不起作用:
t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
t2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']
t3= [len(t1)+len(t2)]
a = 0
while a < len(t1)+len(t2):
t3.extend(t1[a])
t3.extend(t2[a])
a = a + 1
print t3
所以基本上我想要 ['Jan',31,'Feb',28,'Mar',31, 等等...]
您可能需要阅读有关 python 列表及其方法的更多信息。 t3= [len(t1)+len(t2)]
这完全没有必要。我猜你有 C 背景并试图用大小初始化列表。在 python 中,您不必初始化列表大小(它会自动增加)。并且您在列表中的项目不会按照您输入的 顺序 存储。如果您希望您的项目在 python 中检查 tuple
顺序相同。
快乐编码
t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
t2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']
arr = []
for i in range(12):
arr.append(t2[i])
arr.append(t1[i])
print(arr)
输出-
['Jan', 31, 'Feb', 28, 'Mar', 31, 'Apr', 30, 'May', 31, 'Jun', 30, 'Jul', 31, 'Aug', 31, 'Sept', 30, 'Oct', 31, 'Nov', 30, 'Dec', 31]
你也可以写-
import itertools
arr = list(itertools.chain.from_iterable(zip(t2, t1))
在Python中,你不能像其他语言的数组那样创建固定长度的列表,所以第三行应该只是t3 = []
.
此外,extend()
函数用于连接列表。要添加单个新值,您需要改用 append()
函数。
仅 zip
列表并展平结果。
>>> from itertools import chain
>>> t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
>>> t2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
... 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']
>>> list(chain(*zip(t2, t1)))
['Jan', 31, 'Feb', 28, 'Mar', 31, 'Apr', 30, 'May', 31, 'Jun', 30, 'Jul', 31, 'Aug', 31, 'Sept', 30, 'Oct', 31, 'Nov', 30, 'Dec', 31]
没有chain
:
>>> [x for tup in zip(t2, t1) for x in tup]
['Jan', 31, 'Feb', 28, 'Mar', 31, 'Apr', 30, 'May', 31, 'Jun', 30, 'Jul', 31, 'Aug', 31, 'Sept', 30, 'Oct', 31, 'Nov', 30, 'Dec', 31]
给你:
t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
t2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']
t3 = list()
for i, j in zip(t1, t2):
t3.append(i)
t3.append(j)
print(t3)
最短的解决方案可能是:
list(sum(zip(t2, t1), ()))
在 Python 中,您不需要 "reserve capacity" 来获取列表。随便写
t3 = []
事实上,t3 = [len(t1)+len(t2)]
甚至没有创建长度为 24 的列表,而是创建了一个包含单个条目 [24] 的列表。
t1[a]
和 t2[a]
是您要添加到列表中的元素。要添加元素,您可以使用 .append
方法:
t3.append(t1[a])
t3.append(t2[a])
.extend
用于向列表中添加一个列表(实际上是任何可迭代的),例如
t3.extend([t1[a], t2[a]])
问题本身可以使用list comprehensions轻松解决。
[a for l in zip(t2, t1) for a in l]
还有许多其他改进可以进行(例如,使用 for 循环而不是 while 循环)。你可以把它带到 http://codereview.stackexchange.com.
(顺便说一句,这段代码不处理闰年。)
Python是动态编程语言,标识符的类型在赋值时就确定了。
所以基本上你可以这样做:
t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
t2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']
t3= []
for a in range(len(t1)):
append.append(t1[a])
apppend.append(t2[a])
print t3
我想创建一个列表,从 python 中的 2 个单独列表中交替添加元素。 我有以下想法,但它似乎不起作用:
t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
t2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']
t3= [len(t1)+len(t2)]
a = 0
while a < len(t1)+len(t2):
t3.extend(t1[a])
t3.extend(t2[a])
a = a + 1
print t3
所以基本上我想要 ['Jan',31,'Feb',28,'Mar',31, 等等...]
您可能需要阅读有关 python 列表及其方法的更多信息。 t3= [len(t1)+len(t2)]
这完全没有必要。我猜你有 C 背景并试图用大小初始化列表。在 python 中,您不必初始化列表大小(它会自动增加)。并且您在列表中的项目不会按照您输入的 顺序 存储。如果您希望您的项目在 python 中检查 tuple
顺序相同。
快乐编码
t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
t2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']
arr = []
for i in range(12):
arr.append(t2[i])
arr.append(t1[i])
print(arr)
输出-
['Jan', 31, 'Feb', 28, 'Mar', 31, 'Apr', 30, 'May', 31, 'Jun', 30, 'Jul', 31, 'Aug', 31, 'Sept', 30, 'Oct', 31, 'Nov', 30, 'Dec', 31]
你也可以写-
import itertools
arr = list(itertools.chain.from_iterable(zip(t2, t1))
在Python中,你不能像其他语言的数组那样创建固定长度的列表,所以第三行应该只是t3 = []
.
此外,extend()
函数用于连接列表。要添加单个新值,您需要改用 append()
函数。
仅 zip
列表并展平结果。
>>> from itertools import chain
>>> t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
>>> t2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
... 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']
>>> list(chain(*zip(t2, t1)))
['Jan', 31, 'Feb', 28, 'Mar', 31, 'Apr', 30, 'May', 31, 'Jun', 30, 'Jul', 31, 'Aug', 31, 'Sept', 30, 'Oct', 31, 'Nov', 30, 'Dec', 31]
没有chain
:
>>> [x for tup in zip(t2, t1) for x in tup]
['Jan', 31, 'Feb', 28, 'Mar', 31, 'Apr', 30, 'May', 31, 'Jun', 30, 'Jul', 31, 'Aug', 31, 'Sept', 30, 'Oct', 31, 'Nov', 30, 'Dec', 31]
给你:
t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
t2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']
t3 = list()
for i, j in zip(t1, t2):
t3.append(i)
t3.append(j)
print(t3)
最短的解决方案可能是:
list(sum(zip(t2, t1), ()))
在 Python 中,您不需要 "reserve capacity" 来获取列表。随便写
t3 = []
事实上,
t3 = [len(t1)+len(t2)]
甚至没有创建长度为 24 的列表,而是创建了一个包含单个条目 [24] 的列表。t1[a]
和t2[a]
是您要添加到列表中的元素。要添加元素,您可以使用.append
方法:t3.append(t1[a]) t3.append(t2[a])
.extend
用于向列表中添加一个列表(实际上是任何可迭代的),例如t3.extend([t1[a], t2[a]])
问题本身可以使用list comprehensions轻松解决。
[a for l in zip(t2, t1) for a in l]
还有许多其他改进可以进行(例如,使用 for 循环而不是 while 循环)。你可以把它带到 http://codereview.stackexchange.com.
(顺便说一句,这段代码不处理闰年。)
Python是动态编程语言,标识符的类型在赋值时就确定了。 所以基本上你可以这样做:
t1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
t2 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec']
t3= []
for a in range(len(t1)):
append.append(t1[a])
apppend.append(t2[a])
print t3