sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
语法:sorted(iterable[, cmp[, key[, reverse]]])
先按第二个数排列 再按第一个数排列
>>> L = [('d',2),('a',4),('b',3),('c',2)]
>>> print sorted(L, key=lambda x:(x[1],x[0]))
>>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]
String
string.zfill(number) 右对齐,左补0
1、求素数
def prime(n):
if n<=1:
return 0
for i in range(2,int(math.sqrt(n)+1)):
if n%i==0:
return 0
return 1
for i in range(2,100000):
if prime(i):
count+=1
if count>=begin and count<=end:
primes.append(i)
if count==10000:
print i
# print primes
primes = [str(i) for i in primes]
print "\n".join([i + 10 > len(primes) and " ".join(primes[i:]) or " ".join(primes[i:i+10]) for i in range(len(primes)) if i % 10 == 0])
2、密码解密
# coding : utf-8
a, b, c, d = raw_input(), raw_input(), raw_input(), raw_input()
DAY = {'A': 'MON', 'B': 'TUE', 'C': 'WED', 'D': 'THU', 'E': 'FRI', 'F': 'SAT', 'G': 'SUN'}
HH = {"0": "00", "1": "01", "2": "02", "3": "03", "4": "04", "5": "05", "6": "06", "7": "07", "8": "08", "9": "09",
"A": "10", "B": "11", "C": "12", "D": "13", "E": "14", "F": "15", "G": "16", "H": "17", "I": "18", "J": "19",
"K": "20", "L": "21", "M": "22", "N": "23"}
count = 0
day = ""
while True:
if a[count] == b[count]:
if day != "":
hh = a[count]
break
elif (a[count] in DAY.keys()) and (b[count] in DAY.keys()):
day = a[count]
count += 1
count = 0
lst = range(97, 123)
while True:
if ord(c[count]) in lst:
if c[count] == d[count]:
break
count += 1
print DAY[day], HH[hh] + ':%02d' % (count)
从键盘输入: temp=raw_input().split(' '),列表划分
[ [],[],[],[] ] score= [ [],[],[],[] ]
score[1].append([d,temp[0],d+c]) 列表加入
itemgetter key=itemgetter(1) 第一列 升序 reverse=Ture 降序 key=itemgetter(2, 0) 先按第2列 降序 再0列降序
from operation import itemgetter
a = sorted(score[i], key=itemgetter(1))
a = sorted(a, key=itemgetter(2, 0), reverse=True)
德才论11.10
from operator import itemgetter
sample=raw_input()
number=[int(n) for n in sample.split(' ')]
n=number[0]
l=number[1]
h=number[2]
M=0
id_list=[]
score=[[],[],[],[]]
for i in range(n):
temp=raw_input().split(' ')
d=int(temp[1])
c=int(temp[2])
if d>=h and c>=h:
M+=1
score[0].append([d,temp[0],d+c])
elif d>=h and c>=l and c=c and c>=l:
M += 1
score[2].append([d,temp[0],d+c])
elif d>=l and c>=l:
M += 1
score[3].append([d, temp[0], d+c])
print M
# sort
for i in range(4):
if score[i] == []:
continue
a = sorted(score[i], key=itemgetter(1))
a = sorted(a, key=itemgetter(2, 0), reverse=True)
for j in range(len(a)):
print '%s %d %d'%(a[j][1],a[j][0],a[j][2]-a[j][0])
4、kaprekar 常数
字符串右对齐左补0 .zfill()
number=raw_input()
black=0
while True:
number=number.zfill(4)
s1="".join((lambda x:sorted(x,reverse=True))(list(number)))
num1=int(s1)
s2="".join((lambda x:sorted(x))(list(number)))
num2=int(s2)
black=num1-num2
print "%04d -%04d =%04d" %(num1,num2,black)
if black==0 or black==6174:
break
else:number=str(black)