相关疑难解决方法(0)

如何在Python中将字符串解析为float或int?

在Python中,我如何解析数字字符串,如"545.2222"相应的浮点值,545.2222?或者将字符串解析为"31"整数,31

我只是想知道如何将一个浮点数 解析str为a float,并且(单独)将一个int 解析str为一个int.

python floating-point parsing integer type-conversion

2108
推荐指数
21
解决办法
371万
查看次数

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

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

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

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

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

python split list chunks

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

在python中用分隔符拆分一个字符串

如何将此字符串拆分__为分隔符

MATCHES__STRING
Run Code Online (Sandbox Code Playgroud)

要获得输出['MATCHES', 'STRING']

python string split list

180
推荐指数
1
解决办法
39万
查看次数

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

创建子列表

与列表展平相反.

给定列表和长度n返回长度为n的子列表的列表.

def sublist(lst, n):
    sub=[] ; result=[]
    for i in lst:
        sub+=[i]
        if len(sub)==n: result+=[sub] ; sub=[]
    if sub: result+=[sub]
    return result
Run Code Online (Sandbox Code Playgroud)

一个例子:

如果列表是:

[1,2,3,4,5,6,7,8]
Run Code Online (Sandbox Code Playgroud)

而n是:

3
Run Code Online (Sandbox Code Playgroud)

返回:

[[1, 2, 3], [4, 5, 6], [7, 8]]
Run Code Online (Sandbox Code Playgroud)

有更有说服力/简洁的方式吗?

另外,将列表附加到列表时(在上面的上下文中)首选:

list1+=[list2]
Run Code Online (Sandbox Code Playgroud)

要么:

list1.append(list2)
Run Code Online (Sandbox Code Playgroud)

鉴于此(根据Summerfeild的"Python 3编程"),它们是一样的吗?

谢谢.

python grouping list

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

在函数编程风格中具有容量限制的子元中拆分python元组

我在python中有一些元组.例如,容量限制为5.我想将子元素拆分为由元素总和限制的子元素:

例如:

input: (3, 1, 4, 2, 2, 1, 1, 2) and capacity = 5
output: (3, 1) (4) (2, 2, 1) (1, 2) #each subtuple is less than 5, order safe.
Run Code Online (Sandbox Code Playgroud)

我正在寻找这个任务的一个很好的表达解决方案,最好是在编程的功能风格(itertools.dropwhile例如使用或类似的东西)

python functional-programming python-itertools

12
推荐指数
3
解决办法
954
查看次数

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

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

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
查看次数

如何从列表中按 10 个为一组获取元素?(或 5 个、或 3 个等)

从列表中分组获取元素的 Pythonic 方法是什么?即,我想要列表的前 10 个元素,然后是接下来的 10 个元素,然后是接下来的 10 个元素,依此类推。

python python-2.7

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