python - 为[字符串]/[列表中的项目]赋值

标签 python arrays list python-3.x

我正在创建一个纸牌游戏 - 二十一点 - 并且需要向用户显示一个字符串,但要跟踪每张纸牌在计算中的得分。因此,我创建了一个包含卡片所有值的列表:

cards = [1,1,1,1,2,2,2,2,3,3,3,3,...]

但对于用户来说,例如,如果列表中的项目是 13,我想显示 King。我如何制作包含这些值的字典/键或数组?我无法使用基于位置的字典,因为一旦发牌,我会将其从 list/deck 中删除。

最佳答案

您只需定义一个字符串列表:

cardnames = ["Ace","2","3","4","5","6","7","8","9","10","Jack","Queen","King"]

现在如果卡片的值为v,则可以通过cardnames[v-1]获取对应的名称。例如:

v = 5
print("I have a %s"%cardnames[v-1])

在这种情况下,jack 的值为 11,Queen 为 12,King 为 13。例如(使用 python 的交互式 shell):

$ python
Python 2.7.9 (default, Apr  2 2015, 15:33:21) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> cardnames = ["Ace","2","3","4","5","6","7","8","9","10","Jack","Queen","King"]
>>> v=12
>>> print("I have a %s"%cardnames[v-1])
I have a Queen
>>> v=7
>>> print("I have a %s"%cardnames[v-1])
I have a 7
>>> v=1
>>> print("I have a %s"%cardnames[v-1])
I have a Ace
>>> v=13
>>> print("I have a %s"%cardnames[v-1])
I have a King

或者使用python3:

$ python3
Python 3.4.3 (default, Mar 26 2015, 22:03:40) 
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> cardnames = ["Ace","2","3","4","5","6","7","8","9","10","Jack","Queen","King"]
>>> v=12
>>> print("I have a %s"%cardnames[v-1])
I have a Queen
>>> v=7
>>> print("I have a %s"%cardnames[v-1])
I have a 7
>>> v=1
>>> print("I have a %s"%cardnames[v-1])
I have a Ace
>>> v=13
>>> print("I have a %s"%cardnames[v-1])
I have a King

关于python - 为[字符串]/[列表中的项目]赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34733090/

相关文章:

jquery.autocomplete.js - 自动完成是如何工作的?

java - 如何使用 Arrays.equals 确定 2 个 2d 数组是否相同(意味着它们具有相同的数字但顺序不同)?在JAVA中

C程序: Integer array pointer changes values when passed as parameter

python - 列出pandas数据框

具有双元素的 Python itertools 排列

python - 最小窗口包含数组中的所有元素

python - 我希望我的 Python 脚本能够检测版本并在不匹配的情况下正常退出

C数组地址混淆

Python Strip 列表以删除不需要的字符

javascript - 将数组的内容作为列表元素添加到无序列表