统计序列中元素出现次数
lis=[3,2,5,2]
结果:{3: 1, 2: 2, 5: 1}
from collections import Counter
print(Counter(lis).most_common(len(lis)))
#[(2, 2), (3, 1), (5, 1)]
for x in lis:
dic[x]=dic.get(x,0)+1
print(dic)
lis=[3,2,5,2]
for x in lis:
dic[x]=lis.count(x)
print(dic)
lis=[3,2,5,2]
dic=dict()
for k in lis:
if k not in dic:
dic[k]=1
else:
dic[k]+=1
print(dic)
#{3: 1, 2: 2, 5: 1}
输出小星星
算法:将其分为上下两部分,先输出空格,在输出*,后换行
def star(n):
for i in range(n):
for j in range(n):
if i+j==(n-1):
print('* '*(i+1))
break
else:
print(' ',end='')
for i in range(n-1):
for j in range(n):
if i<j:
print('* '*(n-1-i))
break
else:
print(' ',end='')
>>> star(6)
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
算法:将*居中
>>> def main(n):
for i in range(n):
print(('* '*i).center(n*3))
for i in range(n,0,-1):
print(('* '*i).center(n*3))
>>> main(6)
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
逆序
a='123' #字符
#1
m=list(a)
for i in range(len(a)-1,-1,-1):
print(m[i],end='')
print('\n')
#2 切片法
print(a[::-1])
#3
m.reverse()
for letter in m:
print(letter,end='')
#4
print(''.join(reversed(list(a))))
# int类型逆序
i=123
def f1(i):
c=i%10
b=i//10%10
a=i//100
print(c,b,a)
f1(i)
水仙花数
for i in range(100,1000,1):
m=list(str(i))
n=int(m[0])**3+int(m[1])**3+int(m[2])**3
if n==i:
print(i)
编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,基数下标的元素不变
算法:先生成一个包含20个随机整数的列表,将其下标为偶数的元素取出到另一个列表中,对其排序和逆置,再将排好序的列表放回原列表的偶数下标位。
import random
x=[random.randint(0,100) for i in range(20)]
print(x)
y=x[::2]
y.sort()
y.reverse()
x[::2]=y
print(x)
算法:
import random
list_1 = []
#生成随机整数列表
for i in range(20):
list_1.append(random.randint(0,100))
print('生成的列表为:',list_1)
#从首位开始索引下标为偶数位元素
for i in range(0,len(list_1),2):
#从上一个偶数位的下一个偶数位元素开始索引
for u in range((i+2),len(list_1),2):
#防止索引超出范围
if i < (len(list_1)-2):
#比较索引元素大小
if list_1[i] <= list_1[u]:
#互换元素位置
list_t = list_1[i]
list_1[i] = list_1[u]
list_1[u] = list_t
print('排序后列表为:',list_1)