我有两个数组:X = [1,2,3,4,5,3,8]和Y = ['S', 'S', 'S', 'S', 'S', 'C', 'C']。当我打印此压缩数组时,将产生<zip object at 0x02B6F198>。之所以这两个阵列是压缩是,所以我可以排序Y对应于sorted(X)在该行
sortedY = [y for x,y in sorted(zip(X,Y))]
这行代码并不像我想要的那样(sortedY = ['S','S','C','S','S','S','C'])排序Y,但SortedX与X。
我有第二个程序,使用该代码,它可以正常工作,但是该程序的大小比原始程序小得多。
我正在为python做一个在线课程,在课程的功能部分,他们做了两个功能(一个用于确定素数,一个用于打印它们)
def isprime(n):
if n == 1:
return False
for x in range(2, n):
if n % x == 0:
return False
else:
return True
def primes(n=1):
while(True):
if isprime(n): yield n
n += 1
for n in primes():
if n > 100: break
print(n)
Run Code Online (Sandbox Code Playgroud)
我不明白的是函数的参数primes.为什么n=1.我可能会告诉我一般的编程新手,我对功能和生成器的了解不多.任何帮助将不胜感激.
我有一个程序,目的是模拟纸牌游戏21.以下是我的代码的重要元素,这是非常自我解释(我突出显示的行,我将在后面提到)
spades = ['2S','3S','4S','5S','6S','7S','8S','9S','10S','JS','QS','KS','AS']
hearts = ['2H','3H','4H','5H','6H','7H','8H','9H','10H','JH','QH','KH','AH']
clubs = ['2C','3C','4C','5C','6C','7C','8C','9C','10C','JC','QC','KC','AC']
diamonds = ['2D','3D','4D','5D','6D','7D','8D','9D','10D','JD','QD','KD','AD']
allCards = spades + hearts + clubs + diamonds
cardVal = {'2S':2,'3S':3,'4S':4,'5S': 5,'6S':6,'7S':7,'8S':8,'9S':9,'10S':10,'JS':10,'QS':10,'KS':10,'AS':11,
'2H':2,'3H':3,'4H':4,'5H':5,'6H':6,'7H':7,'8H':8,'9H':9,'10H':10,'JH':10,'QH':10,'KH':10,'AH':11,
'2C':2,'3C':3,'4C':4,'5C':5,'6C':6,'7C':7,'8C':8,'9C':9,'10C':10,'JC':10,'QC':10,'KC':10,'AC':11,
'2D':2,'3D':3,'4D':4,'5D':5,'6D':6,'7D':7,'8D':8,'9D':9,'10D':10,'JD':10,'QD':10,'KD':10,'AD':11}
import random
random.shuffle(allCards)
playerCards = [allCards.pop() for i in range(2)]
dealerCards = [allCards.pop() for i in range(2)]
playerHand = []
dealerHand = []
playerHandVal = 0
dealerHandVal = 0
def handVal(playercards,playerhand,score):
playerhand = []
for i in playercards:
playerhand.append(cardVal[i]) ####### LINE 29 ######
score = sum(playerhand)
print(score)
handVal(playerCards,playerHand,playerHandVal)
handVal(dealerCards,dealerHand,dealerHandVal)
def twist(playercards,playerhand,score): …Run Code Online (Sandbox Code Playgroud)