在python列表解析中解包元组(未使用* -operator)
发布时间:2021-01-24 08:50:49 所属栏目:Python 来源:互联网
导读:我试图基于另一个列表创建一个列表,相同的值连续重复3次. 目前,我正在使用: my_list = [ 1, 2 ] three_times = [] for i in range( len( my_list ) ):... for j in range( 3 ):... three_times.append( my_list[ i ] )... p
我试图基于另一个列表创建一个列表,相同的值连续重复3次. 目前,我正在使用: >>> my_list = [ 1,2 ] >>> three_times = [] >>> for i in range( len( my_list ) ): ... for j in range( 3 ): ... three_times.append( my_list[ i ] ) ... >>> print three_times [1,1,2,2] 但我想用更Pythonic的方式来做,例如: >>> my_list = [ 1,2 ] >>> three_times = [] >>> three_times = [ (value,) * 3 for value in my_list ] >>> print three_times [(1,1),(2,2)] 但是,我找不到解开元组的方法. 对于my_list中的值,类似three_times = [*((value,)* 3)的东西对于解包元组是完美的,但这不是正确的语法. 解决方法您不能在列表推导中使用* iterable解包,该语法仅在调用中可用,而在Python 3中,在使用赋值时.如果你想使用列表推导,只需将你的for循环串联起来;你确实希望直接访问my_list中的值而不是生成索引: [v for v in my_list for _ in range(3)] (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容