可能重复:
如何在Python中将列表拆分为大小均匀的块?
我想从列表l中获取大小为n的元素组:
即:
[1,2,3,4,5,6,7,8,9] -> [[1,2,3], [4,5,6],[7,8,9]] where n is 3
Run Code Online (Sandbox Code Playgroud) 如何批量处理序列的元素?
例如,使用序列"abcdef"和批量大小为2,我想执行以下操作:
for x, y in "abcdef":
print "%s%s\n" % (x, y)
ab
cd
ef
Run Code Online (Sandbox Code Playgroud)
当然,这不起作用,因为它期望列表中的单个元素本身包含2个元素.
什么是一个漂亮,简短,干净,pythonic的方式来处理批处理列表中的下一个n个元素,或者从一个更大的字符串处处理长度为n的子字符串(两个类似的问题)?
可能重复:
如何在Python中将列表拆分为大小均匀的块?
python:将"5,4,2,4,1,0"转换为[[5,4],[2,4],[1,0]]
[1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)
- >
[[1,2,3],[4,5,6],[7,8,9]]
Run Code Online (Sandbox Code Playgroud)
是否有简单的方法来做到这一点,没有明确的'for'?
可能重复:
单个列表中的对
我有一个小整数列表,说:
[1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
我希望收集顺序对并返回一个包含从这些对创建的元组的新列表,即:
[(1, 2), (3, 4), (5, 6)]
Run Code Online (Sandbox Code Playgroud)
我知道必须有一个非常简单的方法来做到这一点,但不能完全解决它.
谢谢
我正在寻找一个可迭代i和大小的函数,n并产生长度n为连续值的元组i:
x = [1,2,3,4,5,6,7,8,9,0]
[z for z in TheFunc(x,3)]
Run Code Online (Sandbox Code Playgroud)
给
[(1,2,3),(4,5,6),(7,8,9),(0)]
Run Code Online (Sandbox Code Playgroud)
标准库中是否存在这样的功能?
如果它作为标准库的一部分存在,我似乎无法找到它并且我已经没有用于搜索的术语.我可以自己写,但我宁愿不写.
我想将逗号分隔值拆分成对:
>>> s = '0,1,2,3,4,5,6,7,8,9'
>>> pairs = # something pythonic
>>> pairs
[(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]
Run Code Online (Sandbox Code Playgroud)
会是什么Python的#什么样子呢?
你如何检测和处理一组奇数的字符串?
我有一个CSV文件,其中包含包含换行符的字段,例如:
A, B, C, D, E, F
123, 456, tree
, very, bla, indigo
Run Code Online (Sandbox Code Playgroud)
(在这种情况下,第二行中的第三个字段是"tree \n"
我尝试了以下方法:
import csv
catalog = csv.reader(open('test.csv', 'rU'), delimiter=",", dialect=csv.excel_tab)
for row in catalog:
print "Length: ", len(row), row
Run Code Online (Sandbox Code Playgroud)
我得到的结果是这样的:
Length: 6 ['A', ' B', ' C', ' D', ' E', ' F']
Length: 3 ['123', ' 456', ' tree']
Length: 4 [' ', ' very', ' bla', ' indigo']
Run Code Online (Sandbox Code Playgroud)
有谁知道如何快速删除多余的换行符?
谢谢!
我将如何能够采取像一个字符串'aaaaaaaaaaaaaaaaaaaaaaa'
,并将其分成4个长度元组像(aaaa,aaaa,aaaa)
在Python中,如果n是k(IOW,)的倍数,很容易将n长列表分解为k -size块.这是我最喜欢的方法(直接来自文档):n % k == 0
>>> k = 3
>>> n = 5 * k
>>> x = range(k * 5)
>>> zip(*[iter(x)] * k)
[(0, 1, 2), (3, 4, 5), (6, 7, 8), (9, 10, 11), (12, 13, 14)]
Run Code Online (Sandbox Code Playgroud)
(诀窍是[iter(x)] * k产生一个对同一个迭代器的k个引用列表,如返回的那样.然后通过调用迭代器的每个k副本一次来生成每个块.之前是必要的因为期望接收它的参数为"单独的" "迭代器,而不是它们的列表."iter(x)zip*[iter(x)] * kzip
我用这个习语看到的主要缺点是,当n不是k的倍数(IOW,n % k > 0 …
我正在使用Python为我工作的实验室编程.如何切出给定字符串中的每3个字符并将其附加到列表中?
即XXXxxxXXXxxxXXXxxxXXXxxxXXX(其中X或x是任何给定的字母)
string = 'XXXxxxXXXxxxXXXxxxXXXxxxXXX'
mylist = []
for x in string:
string[?:?:?]
mylist.append(string)
Run Code Online (Sandbox Code Playgroud)
我希望列表看起来像这样:['XXX','xxx','XXX','xxx','XXX'......等等]
有任何想法吗?