相关疑难解决方法(0)

如何将列表拆分为大小均匀的块?

我有一个任意长度的列表,我需要将它分成相同大小的块并对其进行操作.有一些明显的方法可以做到这一点,比如保留一个计数器和两个列表,当第二个列表填满时,将它添加到第一个列表并清空下一轮数据的第二个列表,但这可能非常昂贵.

我想知道是否有人对任何长度的列表都有一个很好的解决方案,例如使用生成器.

我一直在寻找有用的东西,itertools但我找不到任何明显有用的东西.但是可能会错过它.

相关问题:在块中迭代列表的最"pythonic"方法是什么?

python split list chunks

2068
推荐指数
40
解决办法
84万
查看次数

迭代列表中的每两个元素

如何进行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)

python list

189
推荐指数
11
解决办法
17万
查看次数

在python中一次迭代列表的两个值

我有一套像(669256.02,6117662.09,669258.61,6117664.39,669258.05,6117665.08),我需要迭代,像

    for x,y in (669256.02, 6117662.09, 669258.61, 6117664.39, 669258.05, 6117665.08)
        print (x,y)
Run Code Online (Sandbox Code Playgroud)

哪个会打印

    669256.02 6117662.09
    669258.61 6117664.39
    669258.05 6117665.08
Run Code Online (Sandbox Code Playgroud)

我在Python 3.3顺便说一句

python list

47
推荐指数
3
解决办法
3万
查看次数

如何从一行文字创建字典?

我有一个包含数千行的生成文件,如下所示:

CODE,XXX,DATE,20101201,TIME,070400,CONDITION_CODES,LTXT,PRICE,999.0000,QUANTITY,100,TSN,1510000001

某些行具有更多字段而其他行具有更少字段,但所有行都遵循相同的键值对模式,并且每行具有TSN字段.

在对文件进行一些分析时,我写了一个像下面这样的循环来将文件读入字典:

#!/usr/bin/env python

from sys import argv

records = {}
for line in open(argv[1]):
    fields = line.strip().split(',')
    record = dict(zip(fields[::2], fields[1::2]))
    records[record['TSN']] = record

print 'Found %d records in the file.' % len(records)
Run Code Online (Sandbox Code Playgroud)

...这很好,完全符合我的要求(这print只是一个简单的例子).

但是,对我来说它并没有感觉特别"pythonic"和以下行:

dict(zip(fields[::2], fields[1::2]))
Run Code Online (Sandbox Code Playgroud)

这只是感觉"笨重"(它在田野上迭代了多少次?).

是否有更好的方法在Python 2.6中使用标准模块进行此操作?

python parsing dictionary

8
推荐指数
2
解决办法
4145
查看次数

通过列表迭代3

a = [3,5,8,3,9,5,0,3,2,7,5,4]
for o in a[::3]:
    print o
Run Code Online (Sandbox Code Playgroud)

这让我得到了第一个和每3个项目.3,3,0,7

有没有办法可以检索下两个项目?

a = [3,5,8,3,9,5,0,3,2,7,5,4]
for o in a[::3]:
  if o == 0:
    print o
    print o + 1
    print o + 2
Run Code Online (Sandbox Code Playgroud)

输出0 3 2

我知道这不正确,但也许你可以看到我想要做的事情.基本上,我有一长串属性,每个属性有三个部分,parent_id,property_type和property_value,我需要从列表中检索属性的所有三个部分.

python list

4
推荐指数
1
解决办法
263
查看次数

打印元组中的每2个元素

我已经看了几个问题迭代列表中的每两个元素Python"Every Other Element"成语,他们已经得到了一个答案,我可能会被迫使用,但我觉得有一个更好的方法; 我想用下面的代码做的是能够打印每两个或每4个元素

 Gun_rack =(
         'Gun 1:', 'Colt New Frontier 44 Special', 'Cal:.44     ', 'Weight: 2.8  lbs', 'Ammo Capacity  :6',
         'Gun 2:', 'Smith & Wesson SW1911DK'  ,    'Cal:.45 ACP ', 'Weight: 2.6  lbs', 'Ammo Capacity  :9',
         'Gun 3:', 'Heckler & Koch P2000SK V2',    'Cal.357     ', 'Weight: 1.50 lbs', 'Ammo Capacity :13',             
         'Gun 4:', 'Magnum Research Desert Eagle', 'Cal.50      ', 'Weight: 4.46 lbs', 'Ammo Capacity  :7',
         'Gun 5:', 'Heckler & Koch MP5K ',         'Cal 9mm     ', …
Run Code Online (Sandbox Code Playgroud)

python iteration tuples

4
推荐指数
1
解决办法
3238
查看次数

获取对列表Python

c = [1,2,3,4,5,6,7,8,9,10]

for a,b in func(c):
    doSomething()
Run Code Online (Sandbox Code Playgroud)

所以func()必须返回 (1,2) (2,3) (3,4) ... (8,9) (9,10)

在python 2.7中是否有一个优雅的方法来实现这一目标?

python list python-2.7

-3
推荐指数
2
解决办法
1414
查看次数

标签 统计

python ×7

list ×5

chunks ×1

dictionary ×1

iteration ×1

parsing ×1

python-2.7 ×1

split ×1

tuples ×1