我试图生成一个随机数据集来绘制Python 2.7中的图形。
其中' y' list存储了100到135之间的14个整数。我使用以下代码完成了这个:
y = [random.randint(100, 135) for i in xrange(14)]
对于' x'列表,我想在' y'中存储元素的索引值。为此,我尝试使用代码:
x = []
for i in y:
pt = y.index(i)
x.append(pt)
但是当我运行它时,for循环的结果最终是:
x = [0, 1, 1, 3, 4, 5, 6, 3, 1, 9, 1, 11, 12, 13]
为什么结果如下?
x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
答案 0 :(得分:1)
Python正在y中返回值的第一个位置。
运行代码,这里有一个示例select regexp_replace('abcde(737)sbsgs37(6)s(v)', '(\()(\d+)(\))', '\1''\2''\3') from dual
:
y
110分别是10和13. 105分别是2和9.Python停止查找它找到第一个,因此[127, 124, 105, 119, 121, 118, 130, 123, 122, 105, 110, 109, 108, 110]
变为:
x
答案 1 :(得分:0)
list.index()
在list
中找到该对象的第一个出现的索引,这会产生list
重复元素时看到的结果。 [1, 1, 1].index(1)
之类的内容会生成0
。
如果要生成索引列表,可以使用list(range(len(y)))
,找到y
的长度,从中创建一个range()
对象,然后创建一个{{ 1}}出于那个对象。由于您使用的是Python 2,因此您可以省略list
调用,因为Python 2 list()
已经返回range()
。