繁体   English   中英

在Python中创建一个递增列表

[英]Creating an increasing list in Python

我试图从其他列表创建一些列表,并在此过程中添加一些条件。 我想将这些列表最终写入到csv中。 这是我尝试的代码。

x = [None]*1000
y = [None]*1000
z = [None]*1000
i = 0 
for d in range(0,len(productID)):
    for j in range(0,len(productID[d])):
        if productID[d][j].startswith(u'sku'):

            x[i] = map[productID[d][j]]
            y[i] = name[d]
            z[i] = priceID[d][productID[d][j]].get(u'e')

            i = i + 1  

plan_name = x[0:i]
dev_name  = y[0:i]
dev_price = z[0:i]

这工作正常,但我认为应该有一个更好的方法。 谁能建议我在循环时如何创建列表,而不必先定义它?

您可以使用.append()将项目添加到最初为空的列表中。

x, y, z = [], [], []
for d, sublist in enumerate(productID):
    for entry in sublist:
        if entry.startswith(u'sku'):
            x.append(map[entry])
            y.append(name[d])
            z.append(priceID[d][entry].get(u'e'))

请注意,python可以直接循环遍历序列,并且您通常根本不需要索引。 我使用了enumerate()函数来向外部循环添加索引(因为您似乎需要在那里索引namepriceID )。

.append()将项目添加到列表的末尾:

>>> foo = []
>>> foo.append('bar')
>>> foo.append('spam')
>>> foo
['bar', 'spam']

您可能需要阅读Python教程 它解释了python列表如何很好地工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM