Python 3.4 列表执行不同任务

2024-10-01 05:04:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个清单:

list1 = [
         'aapl':'apple',
         'tgt':'target',
         'nke':'nike',
         'mcd':'Mc Donald',
         'googl':'google',
         'yhoo':'yahoo',
         'rl':'Polo Ralph lauren'
        ]

我想执行这个

q = 0
while q < len(list1): 
   code_to_be_executed 
   q = q+1

但只有第一部分(aapl、tgt、nke、mdc、rl、yhoo等)和第二部分(公司名称为google、yahoo、polo ralph lauren等)要这样打印:nke=nike给用户 问题是它会执行q任务的一切,即使是公司名称这不是我想要的)我知道我可以分开的缩写和公司名称在两个不同的列表,但我怎么能像打印nke=Nike公司?非常感谢


Tags: 名称appletargetgoogle公司yahoorlnke
1条回答
网友
1楼 · 发布于 2024-10-01 05:04:50

我相信您要做的是基本打印一个键/值数据结构(在Python中称为dict):

示例:

data = {
    'aapl': 'apple', 'tgt': 'target', 'nke': 'nike', 'mcd': 'Mc Donald',
    'googl': 'google', 'yhoo': 'yahoo', 'rl': 'Polo Ralph lauren'
}

for k, v in data.items():
    print("{0:s}={1:s}".format(k, v))

输出:

$ python app.py 
nke=nike
tgt=target
aapl=apple
mcd=Mc Donald
rl=Polo Ralph lauren
yhoo=yahoo
googl=google

更新:如果您仍然希望使用带有q变量的while循环执行此操作,那么您的数据结构必须是一个“元组列表”,其中每个“元组”都是一个键/值对。e、 g:[(1, 2), (3, 4)]

示例:或多或少基于您的代码

data = [
    ('aapl', 'apple'),
    ('tgt', 'target'),
    ('nke', 'nike'),
    ('mcd', 'Mc Donald'),
    ('googl', 'google'),
    ('yhoo', 'yahoo'),
    ('rl', 'Polo Ralph lauren)')
]

q = 0  # counter
while q < len(data):
    k, v = data[q]  # assign and unpack each tuple (key, value)
    print("{0:s}={1:s}".format(k, v))
    q += 1

NB:这个数据结构基本上是相同的,只是您失去了能够进行O(1)查找的好处。字典/映射更适合这种数据结构,特别是我想让您执行基于don键的查找。你知道吗

相关问题 更多 >