我需要在Python的切片表示法上有一个很好的解释(引用是一个加号).
对我来说,这种符号需要一点点提升.
它看起来非常强大,但我还没有完全了解它.
我想知道是否有一条快捷方式可以在Python列表中列出一个简单的列表.
我可以在for循环中做到这一点,但也许有一些很酷的"单行"?我用reduce尝试了,但是我收到了一个错误.
码
l = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
reduce(lambda x, y: x.extend(y), l)
Run Code Online (Sandbox Code Playgroud)
错误信息
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
AttributeError: 'NoneType' object has no attribute 'extend'
Run Code Online (Sandbox Code Playgroud) 如何进行for循环或列表理解,以便每次迭代都给出两个元素?
l = [1,2,3,4,5,6]
for i,k in ???:
print str(i), '+', str(k), '=', str(i+k)
Run Code Online (Sandbox Code Playgroud)
输出:
1+2=3
3+4=7
5+6=11
Run Code Online (Sandbox Code Playgroud) 继我之前的问题如何将列表项分组为元组?
例如,如果我有一个元组列表
a = [(1,3),(5,4)]
Run Code Online (Sandbox Code Playgroud)
如何解压缩元组并将其重新格式化为单个列表
b = [1,3,5,4]
Run Code Online (Sandbox Code Playgroud)
我认为这也与iter功能有关,但我真的不知道该怎么做.请赐教.
我的字符串如下:
x = 'abcdefghi'
Run Code Online (Sandbox Code Playgroud)
我想在3的子集中反转它,以便我的输出是:
x = 'cbafedihg'
Run Code Online (Sandbox Code Playgroud)
即第0个索引与第2个索引交换,第3个索引与第5个交换,依此类推.
下面是我的代码基于转换string为list和交换列表中的元素:
string_list = list(x)
for i in range(len(string_list)/3):
string_list[i*3], string_list[i*3+2] = string_list[i*3+2], string_list[i*3]
''.join(string_list)
# Output: 'cbafedihg'
Run Code Online (Sandbox Code Playgroud)
我想知道什么是实现它的最有效和最pythonic的方式.
注意:len(x)%3始终为0.
python ×5
list ×3
slice ×2
flatten ×1
iterable ×1
python-2.7 ×1
python-3.x ×1
string ×1
tuples ×1