在Python中,我如何解析数字字符串,如"545.2222"相应的浮点值,545.2222?或者将字符串解析为"31"整数,31?
我只是想知道如何将一个浮点数 解析str为a float,并且(单独)将一个int 解析str为一个int.
我有一个任意长度的列表,我需要将它分成相同大小的块并对其进行操作.有一些明显的方法可以做到这一点,比如保留一个计数器和两个列表,当第二个列表填满时,将它添加到第一个列表并清空下一轮数据的第二个列表,但这可能非常昂贵.
我想知道是否有人对任何长度的列表都有一个很好的解决方案,例如使用生成器.
我一直在寻找有用的东西,itertools但我找不到任何明显有用的东西.但是可能会错过它.
如何将此字符串拆分__为分隔符
MATCHES__STRING
Run Code Online (Sandbox Code Playgroud)
要获得输出['MATCHES', 'STRING']?
可能重复:
如何在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'?
与列表展平相反.
给定列表和长度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中有一些元组.例如,容量限制为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例如使用或类似的东西)
我有一个包含数千行的生成文件,如下所示:
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中使用标准模块进行此操作?
从列表中分组获取元素的 Pythonic 方法是什么?即,我想要列表的前 10 个元素,然后是接下来的 10 个元素,然后是接下来的 10 个元素,依此类推。
python ×8
list ×4
parsing ×2
split ×2
chunks ×1
dictionary ×1
grouping ×1
integer ×1
python-2.7 ×1
string ×1