循环中列表的成员编号

时间:2017-07-31 13:18:17

标签: python python-2.7

我想对这些"客户"中的每一个进行编号。从1点到16点。

N = 5
items = []
for i in range(N):
    short_v = ("Client %d" % i, 15)
    med_v = ("Client %d" % i, 30)
    long_v = ("Client %d" % i, 45)
    xlong_v = ("Client %d" % i, 60)
    items.append(short_v)
    items.append(med_v)
    items.append(long_v)
    items.append(xlong_v)
print items

我理解为什么这段代码没有工作,因为它在循环中从0到5。但我不知道该放什么。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以创建一个值为1到16且步长为4的数组,并根据您使用的变量将此值添加到i上。为了使这更通用,只需将N合并到test np.arange(1,N*3,4)

示例代码:

N = 5
items = []

test = np.arange(1,N*3,4)

for i in test:

    short_v = ("Client %d" % i, 15)
    med_v = ("Client %d" % int(i+1), 30)
    long_v = ("Client %d" % int(i+2), 45)
    xlong_v = ("Client %d" % int(i+3), 60)

    items.append(short_v)
    items.append(med_v)
    items.append(long_v)
    items.append(xlong_v)

print items

给出了:

  

[('客户1',15),('客户2',30),('客户3',45),&#39 ;客户4',   60),('客户5',15),('客户6',30),('客户7',45),'客户   8',60),('客户9',15),('客户10',30),('客户11',45),   ('客户12',60),('客户13',15),('客户14',30),'客户15&# 39 ;,   45),('客户16',60)]

答案 1 :(得分:0)

我认为根据您的代码输出是正确的,因为您只需添加列表即可。我摔倒你可能想要输出这样的尝试;

Items.append([short_v,med_v,long_v,xlong_v])

而不是那么多追加。希望这有效。