写入python切片?

时间:2011-08-02 00:16:40

标签: python

尝试简单地写入python中的现有(已填充)切片。

data = list([0] * 80)
bytes = [72, 101, 108, 108, 111]
print len(data) # 80
data[0:] = bytes
print (len(data)) # 5

我真正想要的是只修改前5个整数并将剩余的数据列表保留为零。但是,我所做的就是缩小我的名单。

将字节复制到数据中而不缩小数据的正确方法是什么?

2 个答案:

答案 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中的元素覆盖整个列表。