尝试简单地写入python中的现有(已填充)切片。
data = list([0] * 80)
bytes = [72, 101, 108, 108, 111]
print len(data) # 80
data[0:] = bytes
print (len(data)) # 5
我真正想要的是只修改前5个整数并将剩余的数据列表保留为零。但是,我所做的就是缩小我的名单。
将字节复制到数据中而不缩小数据的正确方法是什么?
答案 0 :(得分:4)
data = list([0] * 80)
bytes = [72, 101, 108, 108, 111]
data[:5] = bytes
切片data[0:]
代表整个数组,因此整个数组将替换为您提供的数组。如果您只想替换特定切片,则应指定它。在这里,我已经指定了切片data[:5]
,它是data
的前5个元素。如果您需要它是动态的,则可以将len(bytes)
替换为5
。
答案 1 :(得分:0)
您可以指定切片:
data = list([0] * 80)
bytes = [72, 101, 108, 108, 111]
data[:5] = bytes # data[:5] is a slice
print data # [72, 101, 108, 108, 111, 0, ... ]
您对data[0:] = bytes
(或data[:]
)所做的是使用bytes
中的元素覆盖整个列表。