在Python中,可以在=符号的左侧使用变量吗?

时间:2017-10-26 03:47:21

标签: python variables data-structures python-3.6

我使用Python 3.6.3和visual studio代码

x=[],y=[]'a=[],d+[],i=0
a = ['Al', 'red', '1', '1', 'blue', 'green','', '65', \
'Bill', 'yellow', '1', '2', 'blue', 'red','', '55', \
'Alice', 'pink', '1', '3', 'blue', 'green','', '66', \
'Fred', 'pink', '1', '4', 'orange', 'puce','', '65]

for p in range(1,5):
    x=[a[2+i]]
    y=[a[3+i]]
    d(x,y)=a[0:8]    # variables x and y on left of = sign.
    i=i+8

print(d('1','2'))   
print(d('1','3')[0])

# want to get the following
'Bill', 'yellow', '1', '2', 'blue', 'red','', '55'
'Alice'

我的问题是:在Python中,可以使用变量 =标志的左侧?什么数据结构或其他什么 会这样做吗?它在BASIC工作。

为什么我要这样做?想象一下,我有1000个团体 而不只是这4个。

当我得到答案时,我如何确认和批准或 无论我需要做什么。我还没找到导游。

3 个答案:

答案 0 :(得分:0)

看起来你想使用字典:

a = ['Al', 'red', '1', '1', 'blue', 'green','', '65', 
    'Bill', 'yellow', '1', '2', 'blue', 'red','', '55', 
    'Alice', 'pink', '1', '3', 'blue', 'green','', '66', 
    'Fred', 'pink', '1', '4', 'orange', 'puce','', '65']

step = 8
d = {}
for start in range(0, len(a), step):
    end = start + step
    part = a[start:end]
    d[tuple(part[2:4])] = part


print(d['1','2'])   
print(d['1','3'][0])

输出:

['Bill', 'yellow', '1', '2', 'blue', 'red', '', '55']
Alice

这适用于任意数量的群体。

答案 1 :(得分:0)

Mike Muller的回答完美无缺,尽管我搞砸了并且忘了增加保持在1的变量。它适用于我的110个组的大名单,步长值为1435.我无法从一个组移动到下一个。

答案 2 :(得分:0)

我将结束这个问题,说Mike Muller给我的代码和他关于字典的评论让我看到如何在=符号的左侧使用变量。 所以我的问题的答案是肯定的。这是我的结果代码。

step = 1435                                 # Mike Muller's 
d = {}
for start in range(0, len(l), step):
    end = start + step
    part = l[start:end]
    d[tuple(part[2:4])] = part
uu=1
vari = {}
for x in range(1,12):                         
    for y in range(1,15):
        if (str(x),str(y)) in d:
            vari[uu] = d[str(x),str(y)][50]
            print('key  ',x,y)                         # check results
            print ('value  ',vari[uu])                 # check results
            uu=uu+1                      
            print('counter  ',uu)                      # check results
print('out of loop check  ', vari[87])                 # check results


key   1 1
value   121
counter   2
key   1 2
value   124

and so on to the end

counter   87
key   11 6
value   121
counter   88
key   11 7
value   124
counter   89
key   11 8
value   121
counter   90
out of loop check   121