相关疑难解决方法(0)

从可迭代对象一次产生多个对象?

如何从可迭代对象一次生成多个项目?

例如,对于任意长度的序列,如何在每次迭代的X个连续项的组中迭代序列中的项?

python grouping iterator yield

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

Python:将列表拆分为定义大小的块并填充休息

我想将列表拆分为具有相同列数的行,我正在寻找最佳(最优雅/ pythonic)方式来实现此目的:

>>> split.split_size([1,2,3], 5, 0)
[[1, 2, 3, 0, 0]]

>>> split.split_size([1,2,3,4,5], 5, 0)
[[1, 2, 3, 4, 5]]

>>> split.split_size([1,2,3,4,5,6], 5, 0)
[[1, 2, 3, 4, 5], [6, 0, 0, 0, 0]]

>>> split.split_size([1,2,3,4,5,6,7], 5, 0)
[[1, 2, 3, 4, 5], [6, 7, 0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)

这就是我到目前为止所提出的:

def split_size(l, size, fillup):
    """
    splits list into chunks of defined size, fills up last chunk with fillup if below size
    """
    # len(l) % size or size
    # does i.e. …
Run Code Online (Sandbox Code Playgroud)

python

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

在Python中将二进制文件读入结构

我有一个已知格式/结构的二进制文件.

如何将所有二进制数据读入结构数组?

像(在伪代码中)

bytes = read_file(filename)
struct = {'int','int','float','byte[255]'}
data = read_as_struct(bytes, struct)
data[1]
>>> 10,11,10.1,Arr[255]
Run Code Online (Sandbox Code Playgroud)

编辑:

目前解决方案:

data = []

fmt   = '=iiiii256i'
fmt_s = '=iiiii'
fmt_spec = '256i'

struct_size = struct.calcsize(fmt)

for i in range(struct_size, len(bytes)-struct_size, struct_size):
    dat1= list(struct.unpack(fmt_s, bytes[i-struct_size:i-1024]))
    dat2= list(struct.unpack(fmt_spec, bytes[i-1024:i]))
    dat1.append(dat2)
    data.append(dat1)
Run Code Online (Sandbox Code Playgroud)

python binaryfiles

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

将平面列表变为两元组

是否有单行表达式来完成以下操作:

input = ['this', 'is', 'a', 'list']
output = [('this', 'is'), ('a', 'list')]
Run Code Online (Sandbox Code Playgroud)

我最初的想法是创建两个列表,然后将它们压缩.这将需要三行.

该列表将具有偶数个元素.

python

4
推荐指数
2
解决办法
1269
查看次数

将字符串分成一定长度的较小字符串列表

如果我有这个字符串:

"0110100001100101011011000110110001101111"
Run Code Online (Sandbox Code Playgroud)

如何将每八个字符分成较小的字符串,并将其放入一个列表中,以便它看起来像这样?:

['01101000','01100101','01101100','01101100','01101111']
Run Code Online (Sandbox Code Playgroud)

到目前为止,我无法弄清楚这是怎么可能的.

我应该提一下,因为我的字符串是二进制的,所以长度总是8的倍数.

python string python-2.7

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

Python中的键,字典中的值

到目前为止,这是我的代码:

for keys, values in CountWords.items():
    val = values
    print("%s: %s \t %s: %s" % (keys, val, keys, val))
Run Code Online (Sandbox Code Playgroud)

当它被打印时,它将输出该键及其值,然后在空格后输出相同的内容.我想知道的是,如果我能得到第二个%s:%s来从字典中选择下一个键和值.

python iteration dictionary key-value

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

Python拆分一定长度的字符串

我有这种情况:我有一个字符串,我想分割每个X字符.我的问题是split方法只根据字符串拆分字符串,例如:

a = 'asdeasxdasdqw'
print a.split('x')

>>>['asdeasx', 'dasdqw']
Run Code Online (Sandbox Code Playgroud)

我需要的是类似于:

[伪]

paragraph = 'my paragraph'

split_offset = 4
print paragraph.split(split_offset)

>>> ['my pa', 'ragraph']
Run Code Online (Sandbox Code Playgroud)

python string split

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

python批量处理列表元素

我有一个列表中的扑克牌序列。有 4 个玩家,因此列表中的每四个元素代表一个技巧。我必须一起处理 4 张牌才能找到技巧赢家。我需要一次拆分列表四个元素。我目前正在做以下事情:

cardSequnce = [
    'D7', 'D8', 'DT', 'DA',
    'H2', 'H7', 'HK', 'H5',
    'H3', 'HT', 'HA', 'HQ',
    'H8', 'D2', 'H4', 'HJ',
    'D6', 'D3'
]
four_card = []
for index, card in enumerate(cardSequnce):
    if(index % 4 == 0):
        # process four_card
        four_card = []
    four_card.append(card)
Run Code Online (Sandbox Code Playgroud)

我认为使用python的力量我可以做得比这更好。我可以同时访问 4 张卡吗?任何人都可以帮助我使我的代码更加 Pythonic 吗?

python python-3.x

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

一行代表几乎冗余的列表理解

考虑两个列表推导gammadelta几乎冗余的代码.区别在于切片名单alphabeta,即

gamma = [alpha[i:i+30] for i in range(0,49980,30)]
delta = [beta[i:i+30] for i in range(0,49980,30)]
Run Code Online (Sandbox Code Playgroud)

是否有一种pythonic方式将其写成一个衬垫(比方说gamma,delta = ...)?

我还有一些其他类似的代码,它们本质上是相似的,我想简化代码的看似冗余.

python list-comprehension python-3.x

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

打印十六进制,中间有空格

我正在尝试以其他方式打印十六进制...

首先,我将其转换(字节串是变量的名称):

b'\xff\x00\xff\xff\xff'
Run Code Online (Sandbox Code Playgroud)

十六进制

print(bytestring.hex())
Run Code Online (Sandbox Code Playgroud)

输出:

ff00ffffff
Run Code Online (Sandbox Code Playgroud)

但我已经尝试了一段时间以使其输出:

ff 00 ff ff ff
Run Code Online (Sandbox Code Playgroud)

但没有运气。

有什么建议么?干杯!


更新:

stringdata = f.read(5)
print(stringdata)
#b'\xff\x00\xff\xff\xff'

readHex = " ".join(["{:02x}".format(x) for x in stringdata.hex()])
# ValueError: Unknown format code 'x' for object of type 'str'
Run Code Online (Sandbox Code Playgroud)

python hex python-3.x

4
推荐指数
2
解决办法
1873
查看次数