八丶回顾总结

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=" ")
原文地址:https://www.cnblogs.com/mlcg/p/11343544.html