Python 元组字典回顾
因为一些原因,已经有近一个月没有学Python了,今天开始回归!
生成一个随机大写字符存入列表中
- random模块生成随机数
import random
NUM = 10
result_a = []
for i in range(NUM):
#生成65-91(不包括)的随机数
num = random.randint(65,96)
#随机数转成成字符`chr()`并添加到列表中
result_a.append(chr(num))
print (result_a)
chr()函数可以将数字转换为字符
- 列表推导式
import random
NUM = 10
result_b = [chr(random.randint(65,96)) for i in range(NUM)]
print(result_b)
- numpy函数生成多个随机数(随机数矩阵)
#numpy.random.randint()函数可生成一个随机数的矩阵,可生成多行、多列的随机数
import numpy
NUM = 10
result_c = [chr(i) for i in numpy.random.randint(65,96,[NUM,1])]
#这里[NUM,1]表示生成1行NUM个的随机数
print(result_c)
numpy模块需要单独安装pip install numpy;PyCharm中可以在配置中搜索numpy直接安装,比较方便
列表元素去重(重复)
- 新列表收集法
原理:遍历源列表中的所有元素,若元素不在新列表中,就将元素添加到新列表中
优点:可以保证元素的顺序
#使用列表推导式来创建一个包含重复元素的列表
import random
new_list = []
scr_list = [random.randint(15,25) for i in range(15)]
NUM = len(scr_list)
print(NUM)
for i in scr_list:
if i not in new_list:
new_list.append(i)
print(new_list)
- set集合去重
特点:set集合不允许存在重复的元素,所以若将列表元素传给set(),就会自动去重;结果是按元素大小进行排列且不再是列表所以需要list再转回来
set_list = list(set(scr_list))
print(set_list)
- 使用itertools模块的groupby函数去重,该函数用于分组,会将相同的元素放在一组中
注意:这种方法需要先对列表进行排序
dir(itertools)下的函数;help(函数)查看具体函数的用法
import itertools
scr_list.sort()
#使用itertools.groupby()对列表进行分组
it_list = itertools.groupby(scr_list)
#遍历所有组内的元素并返回,若元素相同则只返回一个
for k,g in it_list:
print(k,end=" ")