将列表划分为大致相等的部分的最佳方法是什么?例如,如果列表有7个元素并将其拆分为2个部分,我们希望在一个部分中获得3个元素,而另一个应该具有4个元素.
我正在寻找像even_split(L, n)这样的东西L分成n几部分.
def chunks(L, n):
""" Yield successive n-sized chunks from L.
"""
for i in xrange(0, len(L), n):
yield L[i:i+n]
Run Code Online (Sandbox Code Playgroud)
上面的代码给出了3个块,而不是3个块.我可以简单地转置(迭代它并获取每列的第一个元素,调用第一部分,然后取第二部分并将其放入第二部分等),但这会破坏项目的顺序.
我有一个复杂的字典结构,我想通过一个键列表访问,以解决正确的项目.
dataDict = {
"a":{
"r": 1,
"s": 2,
"t": 3
},
"b":{
"u": 1,
"v": {
"x": 1,
"y": 2,
"z": 3
},
"w": 3
}
}
maplist = ["a", "r"]
Run Code Online (Sandbox Code Playgroud)
要么
maplist = ["b", "v", "y"]
Run Code Online (Sandbox Code Playgroud)
我已经制作了以下代码,但是我确信如果有人有想法,有更好更有效的方法.
# Get a given data from a dictionary with position provided as a list
def getFromDict(dataDict, mapList):
for k in mapList: dataDict = dataDict[k]
return dataDict
# Set a given data in a dictionary with position provided as a list
def …Run Code Online (Sandbox Code Playgroud) 如何增加日期时间?
for i in range(1, 35)
date = datetime.datetime(2003, 8, i)
print(date)
Run Code Online (Sandbox Code Playgroud)
但我需要正确地经历数月和数年?有任何想法吗?
我在python中有一个名为tuple的类
class Town(collections.namedtuple('Town', [
'name',
'population',
'coordinates',
'population',
'capital',
'state_bird'])):
# ...
Run Code Online (Sandbox Code Playgroud)
我想做的是将其变成字典.我承认python不是我强大的语言之一.关键是我不希望它与我所拥有的字段的名称或数字紧密相关.
有没有办法写它,以便我可以添加更多的字段,或传递一个完全不同的命名元组并获取字典.
编辑:我不能改变原来的类定义,因为它在别人的代码中.所以我需要一个城镇的实例并将其转换为字典.
我真的很困惑.我试着编码,但错误说can't decode....
>>> "??".encode("utf8")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我知道如何避免字符串上带有"u"前缀的错误.我只是想知道为什么在调用编码时错误是"无法解码".什么是Python在幕后做什么?
在测试会员资格时,我们可以使用:
x not in y
Run Code Online (Sandbox Code Playgroud)
或者:
not y in x
Run Code Online (Sandbox Code Playgroud)
根据x和,这个表达式可能有许多可能的上下文y.例如,它可以用于子字符串检查,列表成员资格,字典密钥存在.
关于什么可以/不能用作python dict的键,我有点困惑.
dicked = {}
dicked[None] = 'foo' # None ok
dicked[(1,3)] = 'baz' # tuple ok
import sys
dicked[sys] = 'bar' # wow, even a module is ok !
dicked[(1,[3])] = 'qux' # oops, not allowed
Run Code Online (Sandbox Code Playgroud)
所以一个元组是一个不可变的类型,但是如果我在其中隐藏一个列表,那么它就不能成为一个键......难道我不能轻易地隐藏模块中的列表吗?
我有一个模糊的想法,关键是必须"可以",但我只是承认自己对技术细节的无知; 我不知道这里到底发生了什么.如果您尝试使用列表作为键,将哈希作为其内存位置,会出现什么问题?
使用PEP 557,数据类被引入到python标准库中.
他们使用@dataclass装饰器,他们应该是"默认的可变的命名元组",但我不确定我理解这实际意味着什么,以及它们与普通类的区别.
究竟什么是python数据类以及何时最好使用它们?
这是一些表现特殊的代码.这是我编写的行为的简化版本.这仍然会表现出奇怪的行为,并且我对于为什么会这样做有一些具体的问题.
我在Windows 7上使用Python 2.6.6.
def demo1():
try:
raise RuntimeError,"To Force Issue"
except:
return 1
else:
return 2
finally:
return 3
def demo2():
try:
try:
raise RuntimeError,"To Force Issue"
except:
return 1
else:
return 2
finally:
return 3
except:
print 4
else:
print 5
finally:
print 6
Run Code Online (Sandbox Code Playgroud)
结果:
>>> print demo1()
3
>>> print demo2()
6
3
Run Code Online (Sandbox Code Playgroud)
刚开始使用Python,所以这可能是我的错误,但......
我正在尝试使用Python.我喜欢用它作为计算器,我正在慢慢地完成一些教程.
我今天遇到了一些奇怪的事情.我想找出2013*2013,但我写了错误的东西,写了2013*013,并得到了这个:
>>> 2013*013
22143
Run Code Online (Sandbox Code Playgroud)
我用我的计算器检查了,22143是错误的答案!2013*13应该是26169.
为什么Python给我一个错误的答案?我的旧卡西欧计算器不这样做......
python ×10
dictionary ×3
list ×3
python-2.7 ×2
tuples ×2
chunks ×1
class ×1
datetime ×1
hashable ×1
math ×1
namedtuple ×1
python-2.x ×1
python-3.7 ×1
syntax ×1
try-except ×1
unicode ×1