我确信它很简单,但在谷歌上搜索了一个小时后(新的python),我仍然不确定要解决我的问题谷歌:(你可以从我当前的代码和所需的结果中看到我想要实现的目标!
THX 太
代码:
usernames = ['joe', 'john', 'fred']
joe_image = 'c:\aaa\blahblah.jpg'
john_image = 'c:\aaa\foobar.jpg'
fred_image = 'd:\aaa\1234.jpg'
for z in usernames:
print z
y = z + '_image'
print y
结果:
joe
joe_image
john
john_image
fred
fred_image
期望的结果
joe
c:\aaa\blahblah.jpg
john
c:\aaa\foobar.jpg
fred
d:\aaa\1234.jpg
答案 0 :(得分:2)
你需要一个叫Dictionary
的东西lookup_path = {'joe': 'C:\whatev', 'john':'C:\else'}
for z in usernames
print lookup_path[z]
答案 1 :(得分:0)
您正在打印一个恰好是变量名称的字符串,而不是变量本身。
您可能希望完全重新考虑您的程序并使用字典。
users = {'joe':'c:\aaa\blahblah.jpg','john':'c:\aaa\foobar.jpg','fred':'d:\aaa\1234.jpg'}
然后,您可以使用users['joe']
查找'c:\aaa\blahblah.jpg'
。
如果你真的想通过名称用字符串引用变量,可以使用eval
。然而,这是非常糟糕的做法,并且应该始终谨慎地进行,并且希望永远不会这样做。
答案 2 :(得分:0)
您可以拥有两个单维数组,也可以将初始数组设为二维而非单维
所以你要么
USER_NAMES(X,Y,Z) 和 User_Photos(X,Y,Z) User_Photo(x)用于User_Name(x) User_Photo(y)用于User_Name(y)等
或者你会的 User_Info(NameColumn,PhotoColumn)然后UserInfo(1,0)可能是“乔” 然后UserInfo(1,1)可能是“c:\ aaa \ blahblah.jpg”)
并且
然后UserInfo(2,0)可能是“John” 然后UserInfo(2,1)可能是“c:\ aaa \ foobar.jpg”)
答案 3 :(得分:0)
一种不同的方法是使用命名元组,为了清晰起见,你要付出代价为简洁的代价。
from collections import namedtuple
Pair = namedtuple('Pair', ['name', 'filename'])
them = [ Pair('joe', r'c:\aaa\blahblah.jpg'),
Pair('john', r'c:\aaa\foobar.jpg'),
Pair('fred', r'd:\aaa\1234.jpg')
]
for who in them:
print who.name
print who.filename
给出
joe
c:\aaa\blahblah.jpg
john
c:\aaa\foobar.jpg
fred
d:\aaa\1234.jpg