法一:
用列表
def Hua(s):
if s[:2]=="黑桃":
return 1
if s[:2]=="红桃":
return 2
if s[:2]=="梅花":
return 3
if s[:2]=="方块":
return 4
def Shu(s):
if s[2:]=='A':
return 14
elif s[2:]=='K':
return 13
elif s[2:]=='Q':
return 12
elif s[2:]=='J':
return 11
else:
return int(s[2:])
def DS(L):
for e in L:
for i in range(1,L.count(e)):
L.remove(e)
def m():
L = ['梅花A', '方块4', '梅花2', '方块4', '红桃7', '黑桃Q', '红桃K', '梅花9', '方块9', '红桃5', '梅花J', '方块8', '红桃5', '黑桃3', '黑桃10',
'黑桃3', '红桃7', '黑桃Q']
L.sort(key=Hua)
l=[]
i=0
j=0
p = ["黑桃", "红桃", "梅花", "方块"]
for k in range(4):
i=j
while j<int(len(L)) and p[k] in L[j]:
j=j+1
s=L[i:j]
s.sort(key=Shu,reverse=True)
l=l+s
DS(l)
print(l)
m()
法二:
def Bh(s):
p = ["黑桃", "红桃", "梅花", "方块"]
a=''
for i in range(4):
if s[0:2]==p[i]:
if s[2:] == '10':
a = str(i) + '10'
elif s[2:]<=str(9) and s[2:]>str(0):
a=str(i)+'0'+s[2:]
print(a)
elif s[2:]=='A':
a=str(i)+'14'
elif s[2:]=='K':
a=str(i)+'13'
elif s[2:] =='Q':
a = str(i) + '12'
elif s[2:]=='J':
a=str(i)+'11'
return a
def m():
L = ['梅花A','梅花10', '方块4', '梅花2', '方块4', '红桃7', '黑桃Q', '红桃K', '梅花9', '方块9', '红桃5', '梅花J', '方块8', '红桃5', '黑桃3', '黑桃10', '黑桃3','红桃7', '黑桃Q']
l=list(set(L))
l.sort(key=Bh)
print(l)
m()
注意字符串可以进行比较,是按位进行比较的
s1='10'
s2='2'
print(s1<s2)#True
法三:
用map
L= ['梅花A', '方块4', '梅花2', '方块4', '红桃7', '黑桃Q', '红桃K', '梅花9', '方块9', '红桃5', '梅花J', '方块8', '红桃5', '黑桃3', '黑桃10', '黑桃3',
'红桃7', '黑桃Q']
Hua={'黑桃':4,'红桃':3,'梅花':2,'方块':1}
shu={'A':14,'K':13,'Q':12,'J':11,'10':10,'9':9,'8':8,'7':7,'6':6,'5':5,'4':4,'3':3,'2':2,'1':1}
L.sort(key=lambda k:(Hua[k[0:2]],shu[k[2:]]),reverse=True)
print(L)
d={}
d=d.fromkeys(L)#去除重复元素
L1=list(d.keys())
print(L1)