为什么它从列表[-1]而不是列表[0]开始计算此列表中的元素?(Python 3)
(如果我先显示代码,则更容易解释)为什么它从列表[-1]而不是列表[0]开始计算此列表中的元素?(Python 3),python,list,python-3.x,indexing,Python,List,Python 3.x,Indexing,(如果我先显示代码,则更容易解释) 它确实像预期的那样返回了“b”,所以我不明白为什么键[1]存在,但当键和cA都有2个元素时,cA[1]不存在。它为什么会这样做?有没有办法修复/更改它 您的列表中只有一个元素: cA = random.sample(keys, 1) 您要求的是长度为1的随机样本 -1有效,因为它是相对于结束的索引。对于长度为1的列表,listobj[-1]是与listobj[0]相同的对象;最后一个元素也是第一个元素 keys是一个包含两个元素的列表,因此keys[0]和k
它确实像预期的那样返回了“b”,所以我不明白为什么键[1]存在,但当键和cA都有2个元素时,cA[1]不存在。它为什么会这样做?有没有办法修复/更改它 您的列表中只有一个元素:
cA = random.sample(keys, 1)
您要求的是长度为1的随机样本
-1
有效,因为它是相对于结束的索引。对于长度为1的列表,listobj[-1]
是与listobj[0]
相同的对象;最后一个元素也是第一个元素
keys
是一个包含两个元素的列表,因此keys[0]
和keys[1]
都存在。您的列表中只有一个元素:
cA = random.sample(keys, 1)
import random
inventory = 100
while True:
print('inventory: $' + str(inventory))
print('how much do you wager?')
wager = input()
keys = ['a', 'b']
cA = random.sample(keys, 1)
print('pick "a" or "b"')
guess = input()
if guess == cA <------------ cA has the element that is the correct wager
inventory += int(wager)
else:
inventory -= int(wager)
您要求的是长度为1的随机样本
-1
有效,因为它是相对于结束的索引。对于长度为1的列表,listobj[-1]
是与listobj[0]
相同的对象;最后一个元素也是第一个元素
keys
是一个包含两个元素的列表,因此keys[0]
和keys[1]
都存在。import random
import random
inventory = 100
while True:
print('inventory: $' + str(inventory))
print('how much do you wager?')
wager = input()
keys = ['a', 'b']
cA = random.sample(keys, 1)
print('pick "a" or "b"')
guess = input()
if guess == cA <------------ cA has the element that is the correct wager
inventory += int(wager)
else:
inventory -= int(wager)
存货=100
尽管如此:
打印('存货:$'+str(存货))
打印('你赌多少?')
下注=输入()
键=['a','b']
cA=随机样本(键,1)
打印('选择“a”或“b')
猜测=输入()
如果猜测==cAimport random
存货=100
尽管如此:
打印('存货:$'+str(存货))
打印('你赌多少?')
下注=输入()
键=['a','b']
cA=随机样本(键,1)
打印('选择“a”或“b')
猜测=输入()
如果guess==cA,则负索引是一种Python约定,用于从列表末尾向后计数。给定a=[1,2,3]
,a[-1]
为3。在你的例子中,你的列表只有一个项目,所以<代码> A[-1 ] < /Cord>是一个项目:与<代码> A[0 ] < /代码>相同。没有公平的编辑你的答案来添加我写评论的东西,Martijn!此外,负索引是一种Python约定,用于从列表末尾向后计数。给定a=[1,2,3]
,a[-1]
为3。在你的例子中,你的列表只有一个项目,所以<代码> A[-1 ] < /Cord>是一个项目:与<代码> A[0 ] < /代码>相同。没有公平的编辑你的答案来添加我写评论的东西,Martijn!实际上(正如Martijn Pieters指出的)我的问题是我在应该放…(键,2)的时候放了cA=random.sample(键,1),但实际上我用了cA而不是键,因为我希望它是随机的(因此是猜测),但谢谢你,很抱歉。还在喝我早上的咖啡:)如果你能做得更多,而不仅仅是抛出一些代码,你的答案会更好。添加一个解释,解释为什么你的代码版本更好,以及你改变了什么。事实上(正如Martijn Pieters指出的)我的问题是我把cA=random。示例(键,1)当我应该放…(键,2)时,但我实际上用cA代替了键,因为我希望它是随机的(因此猜测),但谢谢你,对此感到抱歉。还在喝我早上的咖啡:)如果你能做得更多,而不仅仅是抛出一些代码,你的答案会更好。添加一个解释,解释为什么你的代码版本更好,以及你改变了什么。没有,我已经意识到这是我的问题。没有,我已经意识到这是我的问题