有没有人知道将列表列表变成看起来像我在下面绘制的内容的语法?
列表列表如下所示:
list = [0, [~, ~, ~], 1, [~, ~, ~], 2, [~, ~, ~] ]
Run Code Online (Sandbox Code Playgroud)
这是期望的输出:
0 ~ ~ ~
1 ~ ~ ~
2 ~ ~ ~
Run Code Online (Sandbox Code Playgroud)
我见过其他人问一个类似的问题但是他们的子列表只有一个元素,并且每个子列表前面都没有整数元素,所以他们使用以下内容来获得我需要的结果:
"\n".join(item[0] for item in list)
Run Code Online (Sandbox Code Playgroud)
我不知道如何操纵上面的代码来解决我的具体问题.我试过改变
item[0] to item[0:len(sub_list)]
Run Code Online (Sandbox Code Playgroud)
还有很多其他的东西,但没有任何效果.(我对Python很缺乏经验)
任何帮助将不胜感激.谢谢.
我有简单的TCP套接字程序,我想以10个字节的块发送字符串.服务器将加入块.但是我不确定如何将字符串拆分为二进制文件以及如何发送二进制文件块.我不想一次发送512个字节,而是多次发送10个字节.
我找到了一个可以将数据序列化为字节串(?)的模块Pickle,但是如何对此应用socket.send()?
服务器:
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("", my_port))
server_socket.listen(5)
client_socket, address = server_socket.accept()
data = client_socket.recv(512)
Run Code Online (Sandbox Code Playgroud)
客户:
message = "some string I want to send in chunks"
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host, my_port))
client_socket.send(message)
client_socket.close()
Run Code Online (Sandbox Code Playgroud) 我有一个数字列表,如何将每个n数字组合成一个元组?
例如,如果我有一个列表,a = range(10)并且我想将每5个项目组合成一个元组,那么:
b = [(0,1,2,3,4),(5,6,7,8,9)]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?如果len(a)不是整数倍,我也想提出一个错误n.
从列表中分组获取元素的 Pythonic 方法是什么?即,我想要列表的前 10 个元素,然后是接下来的 10 个元素,然后是接下来的 10 个元素,依此类推。
我有一个包含这些值的2D列表:
text = [[4, 3, 8, 9, 5, 1, 2, 7, 6], [8, 3, 4, 1, 5, 9, 6, 7, 2],
[6, 1, 8, 7, 5, 3, 2, 9, 4], [6, 9, 8, 7, 5, 3, 2, 1, 4],
[6, 1, 8, 7, 5, 3, 2, 1, 4], [6, 1, 3, 2, 9, 4, 8, 7, 5]]
Run Code Online (Sandbox Code Playgroud)
例如,text [i]应该这样打印:
4 3 8
9 5 1
2 7 6
Run Code Online (Sandbox Code Playgroud)
但我的矩阵打印此:
r = 6
m = []
for i in range(r):
m.append([int(x) …Run Code Online (Sandbox Code Playgroud) 我使用它是ThreadPoolExecutor为了下载大量(~400k)关键帧图像。关键帧名称存储在文本文件中(假设keyframes_list.txt)。
我修改了文档中提供的示例,它似乎可以完美地工作,但有一个例外:很明显,该示例将每个链接传递给一个future对象,这些链接全部传递给一个可迭代对象(dict()准确地说)。该可迭代对象作为参数传递给函数as_completed()以检查 a 何时future完成。这当然需要一次性将大量文本加载到内存中。我执行此任务的 python 进程占用了 1GB RAM。
完整代码如下所示:
import concurrent.futures
import requests
def download_keyframe(keyframe_name):
url = 'http://server/to//Keyframes/{}.jpg'.format(keyframe_name)
r = requests.get(url, allow_redirects=True)
open('path/to/be/saved/keyframes/{}.jpg'.format(keyframe_name), 'wb').write(r.content)
return True
keyframes_list_path = '/path/to/keyframes_list.txt'
future_to_url = {}
with concurrent.futures.ThreadPoolExecutor(max_workers=8) as executor:
with open(keyframes_list_path, 'r') as f:
for i, line in enumerate(f):
fields = line.split('\t')
keyframe_name = fields[0]
future_to_url[executor.submit(download_keyframe, keyframe_name)] = keyframe_name
for future in concurrent.futures.as_completed(future_to_url):
keyframe_name = future_to_url[future]
try:
future.result()
except Exception …Run Code Online (Sandbox Code Playgroud) 说我有一个字符串
s = '1234567890ABCDEF'
Run Code Online (Sandbox Code Playgroud)
如何将此字符串切片(或者可能拆分为正确的术语?)到一个包含每个包含2个字符的字符串的列表中?
desired_result = ['12', '34', '56', '78', '90', 'AB', 'CD', 'EF']
Run Code Online (Sandbox Code Playgroud)
不确定这是否相关,但我正在解析一个十六进制字符串,我需要的最终结果是一个字节列表,从上面的列表创建(例如,通过使用int(desired_result[i], 16))
我遇到了两种不同的方法来分成iterable"块"(超过1项).
from itertools import izip_longest
def grouper(iterable, n, fillvalue=None):
args = [iter(iterable)] * n
return izip_longest(*args, fillvalue=fillvalue)
Run Code Online (Sandbox Code Playgroud)
def chunker(seq, size):
return (seq[pos:pos + size] for pos in xrange(0, len(seq), size))
Run Code Online (Sandbox Code Playgroud)
itertools实现是否会为您带来"额外"的收益?
"额外"的地方,可能更快或更灵活或更安全.
我问,因为这里显示的itertools实现肯定不是更可读/直观的IMO.
例如,我有这样的简单列表:
l = [1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)
我想以3个元素为一组迭代它:
1,2,3
4,5,6
7,8,9
Run Code Online (Sandbox Code Playgroud)
最简单的方法是什么?
以下代码让我困惑:
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> zip(*([iter(a)]*2))
[(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]
>>> iter(a)
<listiterator object at 0x7f3e9920cf50>
>>> iter(a).next()
0
>>> iter(a).next()
0
>>> iter(a).next()
0
Run Code Online (Sandbox Code Playgroud)
next()总是返回0.那么,该iter功能如何工作?
我需要将一个字符串分成相等的部分.例如,如果我有这个字符串:
string = "123456781234567812345678"
Run Code Online (Sandbox Code Playgroud)
我需要剪掉每8个字符:
["12345678", "12345678", "12345678"]
Run Code Online (Sandbox Code Playgroud) 我有一个形状列表
[1,2,3,4,5,6,7,8]
Run Code Online (Sandbox Code Playgroud)
我怎么能把它变成
[(1,2),(3,4),(5,6),(7,8)]
Run Code Online (Sandbox Code Playgroud)
很快?(清单很大.)
我试图弄清楚每次循环返回下面给出的数据时如何获得 4 位数字
li = ['1','1','7','1','2','1','1','4','1','6','7','8','1','8','1','0','1','B','1','N','1','Y','1','T','1','O']
Run Code Online (Sandbox Code Playgroud)
作为输出:
1171
2114
1678
1810
1B1N
Y1T1
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我吗?
答案我想是这样的
list=['1','2','3','4','5','6','5','4','7','8','9','1','0','6','4','3','4','5','4','7','8','9','0']
j=0
for i in len(list):
if i%4==0:
print("\n")
print(list[i],end=' ')
Run Code Online (Sandbox Code Playgroud) python ×13
list ×2
python-3.x ×2
iterator ×1
python-2.7 ×1
readability ×1
sockets ×1
string ×1
tuples ×1