Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python 3.3中的变量中使用列表索引_Python_Variables_For Loop_Indexing - Fatal编程技术网

在python 3.3中的变量中使用列表索引

在python 3.3中的变量中使用列表索引,python,variables,for-loop,indexing,Python,Variables,For Loop,Indexing,我事先道歉,我是个十足的初学者。我试图做的是让for循环检查用户输入是否包含在列表中,如果包含在列表中,则将该列表的索引放在变量中,以便可以使用它访问另一个列表中的项目。以下是我目前的代码: cust = ["Jim", "Jane", "John"] bal = [300, 300, 300] curCustIndex = "" custName = input("What is your name?") """ Let's assume the user chose "Jane" """

我事先道歉,我是个十足的初学者。我试图做的是让for循环检查用户输入是否包含在列表中,如果包含在列表中,则将该列表的索引放在变量中,以便可以使用它访问另一个列表中的项目。以下是我目前的代码:

cust = ["Jim", "Jane", "John"]
bal = [300, 300, 300]

curCustIndex = ""
custName = input("What is your name?")
""" Let's assume the user chose "Jane" """

for i in cust:
    if custname == cust[i]:
        curCustIndex = i
基本上,我想要的是将
curcustinex
设置为一个索引,比如“Jane”的
[1]
,这样我就可以使用它来对应另一个列表中的索引,比如
bal
列表。在这种情况下,
bal[1]
将是“Jane”的平衡点。我试图寻找答案,但许多相关主题对我来说都有点太高级了。哦,是的,我故意使用全局变量。这是一个初级python类


提前感谢

函数
zip
将两个列表组合成一对元素,每对元素中有一个来自每个列表

In [135]: zip([1,2,3], [4,5,6])
Out[135]: [(1, 4), (2, 5), (3, 6)]
因此,我们可以同时迭代
客户
余额

In [136]: customers = ["Jim", "Jane", "Steve"]

In [137]: balances = [100, 987654, 31415]

In [138]: for person, balance in zip(customers, balances):
   .....:   if("J" in person):
   .....:     print("{0} has a balance of {1}".format(person, balance))
   .....: 
Jim has a balance of 100
Jane has a balance of 987654

但是,您可能会考虑使用不同的数据类型,这样就不必循环所有余额。您可以通过“键”查找值,如下所示:

In [140]: accounts = {"Jim": 100, "Jane": 987654, "Steve": 31415}

In [141]: accounts["Steve"]
Out[141]: 31415
返回给定项位置的Python方法:

>>> cust = ["Jim", "Jane", "John"]
>>> bal = [300, 300, 300]
>>> cust.index("John")
2
>>> bal[cust.index("John")]
300
如文件所述,“如果没有此类项目,则为错误[调用索引]:

和测试:

sh$ python3 t.py
What is your name?John
John has 300
sh$ python3 t.py
What is your name?Paul
No such client: Paul

对范围内的i(len(cust))使用
,而不是
。这将为您提供索引。只需在cust中为i使用
,即可将列表中的实际项目分配给
i
,而不是列表中项目的索引

for i, customer in enumerate(cust):
  if custname == customer:
    curCustIndex = i
更好的是,在enumerate(cust)中为i、customer使用
。执行此操作时,
i
是索引,
customer
是列表中的实际项目

for i, customer in enumerate(cust):
  if custname == customer:
    curCustIndex = i

好的,那你的问题到底是什么?如果有两个叫‘简’的人呢?用字典,而不是一对列表。老兄,我们还没走那么远;这是一个介绍类,我们刚刚开始使用列表。我想我要问的是如何将变量更改为索引,以便在函数中使用它。我为缺乏合适的词汇而道歉,我是新手,所以很难清楚地说出我想要什么。我正在学习。谢谢你的快速回复。任务是我制作一个bankapp,使用用户的输入并将其设置为变量。然后我将“custName”变量传递给一个函数,例如存款(custName),然后让它根据for循环中分配的custName索引修改“bal”列表。@booding如果她不想让你使用
enumerate
,你可以尝试替换
for
行,就像我在第一段中建议的那样。这也应该起到作用。
for i, customer in enumerate(cust):
  if custname == customer:
    curCustIndex = i