选择所需choi时有关数组的Python问题

2024-06-26 10:37:08 发布

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

我需要帮助我的代码,我目前正在做。这是我的一行代码:

subjects = ["o",0,"r",0,"w",0,"c",0,"chi",0]

这是我选择你想要的选择的代码。其中o代表橘子,r代表萝卜,w代表芥末,c代表薯片,cho代表巧克力。我想让用户选择他们想要的选择,当他们输入例如o时,橙色的计数器应该上升1。我只是不知道该怎么做。你知道吗

谢谢。你知道吗


Tags: 代码用户计数器代表橙色subjectschi萝卜
3条回答

这本词典很合适。你知道吗

subjects = {
    "o": 0,
    "r": 0,
    "w": 0,
    "c": 0,
    "chi": 0
}

while True:
    choice = input("Enter your choice: ")

    if choice not in subjects.keys():
        print("Valid choices are: {}".format(",".join(subjects.keys())))
        continue

    subjects[choice] += 1
    print(subjects)

您使用的基于列表的数据结构称为属性列表(或“plist”)。它将键与值相关联。这些在Lisp中很常见,但是Python通常使用dict来实现。dict是基于hashtables的,它比扫描一个列表要快,特别是当它很长的时候。plist确实有某些优点,但它们大多不适用于Python。不过,还是值得知道它们是如何工作的。你知道吗

下面是一些示例,说明如何增加plist中给定键的值。你知道吗

>>> subjects = ["o",0,"r",0,"w",0,"c",0,"chi",0]
>>> subjects[subjects.index("w") + 1] += 1
>>> subjects
['o', 0, 'r', 0, 'w', 1, 'c', 0, 'chi', 0]
>>> subjects[subjects.index("chi") + 1] += 1
>>> subjects
['o', 0, 'r', 0, 'w', 1, 'c', 0, 'chi', 1]

.index()方法发现列表中第一个元素的索引与其参数相等。值紧随其后,所以+ 1。你只用那部分来查值。你知道吗

>>> subjects[subjects.index("chi") + 1] += 2
>>> subjects
['o', 0, 'r', 0, 'w', 1, 'c', 0, 'chi', 3]
>>> subjects[subjects.index("chi") + 1]
3

考虑使用dictionary。基本布局将遵循与下面类似的结构,您可以遍历多个用户选择并执行相同的if/else

dict = {}

choice = input("What is your choice? ")

if choice in dict:
    dict[choice] += 1
else:
    dict[choice] = 1

print(dict)
> {'orange': 1}

相关问题 更多 >