繁体   English   中英

从for循环Python将列表存储到变量中

[英]store a list into a variable from a for loop Python

因此,问题本身就是复杂的。 我正在制作一个可以读取CSS文件的程序。 如果您想查看完整的代码,请参见以下代码( http://pastebin.com/F09MScfp )。 所以我有一个变量。 (让我们称它为element)元素位于for循环中以获取样式和名称。 例如:

for elementName in contents.split('{'):
    element = elementName.split('}')

    print(element + '\n\n')
print(element)

结果:

#For loop results
['#IDname', 'border:1px black solid;']
['.ClassName', 'border:3px blue solid']

#outside of loop (if global)
['IDname', 'border:1px black solid;']

因此,我需要有一种将每个列表存储到变量中的自动化方法,例如调用Element1并获取#IDname。 示例: print(Element2)并将其作为结果

['.ClassName', 'border:1px black solid']

因此,我正在考虑像这样在该循环内进行循环。

i=0
for i in element:
    i = 1+i
    exec('globals()Element+ %i = element' %i)
    #sorry, I'm still really new to python :(

将元素存储在列表中,以便以后可以访问它们。

elements = [elementName.split("}") 
               for elementName in contents.split("{")]

print elements[0] # the first element
print elements[1] # the second element

这类问题经常出现,常见的解决方案是将值添加到列表中,或者您可以创建字典并通过键引用元素。 如果要按示例中添加的顺序引用元素,则可以执行此操作。

elements = {} # Create empty dictionary
accumulator = 1
for element in itterable:
    elements[accumulator] = element # Assign value to a key where accumulator is the key
    accumulator += 1

执行此操作时,可以使用“ elements [2]”调用元素2。

乔兰(Joran)评论说,列表理解是更“ Pythonic”的方法。 您可以通过列举列表理解,将输出作为元组添加到列表中,从而为列表中的每个值提供类似引用的值。

例如...

abc = 'abcdefghijklmnopqrstuvwxyz'
lst = [letter for letter in abc]
new_list = list(enumerate(lst,start=1))
print(new_list)

将输出以下内容:

[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e'), (6, 'f'), (7, 'g'),     (8, 'h'), (9, 'i'), (10, 'j'), (11, 'k'), (12, 'l'), (13, 'm'), (14, 'n'), (15, 'o'), (16, 'p'), (17, 'q'), (18, 'r'), (19, 's'), (20, 't'), (21, 'u'), (22, 'v'), (23, 'w'), (24, 'x'), (25, 'y'), (26, 'z')]

暂无
暂无

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

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