05 第六组(10个) sorted enumerate callable id len range open input

第六组(10个)
  • len
  • print
  • input
  • open, 文件
  • range
py2:
    v1= rang(10)  #会生成 列表[0....9]   立即创建
    v1= xrang(10)  #生成对象           不会立即创建,只有使用循环时,进行创建,用一个进行创建一个,更节省内存
    
py3:
    v1= rang(10)  #会生成 列表[0....9]  #生成对象               不会立即创建
    v2= list(rang(10))  #通过list转换,立即生成 列表[0....9]     会立即创建
  • type 查看数据类型
v1 = 123
type(v1) == int:
    pass

  • id 查看数据内存地址(不要太较真)
-id 表示内存地址
-Python内部会缓存和驻留机制,Python内部小数据,使用缓存机制,-1 到255 在内存中不进行创建多份内存地址, 而是使用同一个内存地址,
如果数据比较大时,内存地址不使用缓存机制
  • callable,是否可执行

def func():
    pass
data_list = [11,22,33,44,func,func]
print(callable(data_list [-1] ))#如果判断,这个函数可以执行,就可以在后面进行增加(),可以使用:callable 进行判断,此处返回:True

#如下面,则返回的是False
v1 = 123
print(callable(v1)) #False
  • enumerate,循环过程中,自动生成一列数据(比如:序号
goods = ['飞机','坦克','迫击炮']
#常规生成序号:
# 方法1
goods = ['飞机', '坦克', '迫击炮']
id = 1
for item in goods:
    print(id, item)
    id = id + 1

# 方法2 使用:enumerate 进行生成

for id, item in enumerate(goods, 10):  #其中10 ,表示从10开始,序号为:10/11/12
    print(id + 1, item)
  • sorted ,排序(不会修改原来数据,生成新数据)
#数据排序
num_list = [0, -1, 11, 88, 79, 66]
v1 = sorted(num_list, reverse=True)  # reverse=True 表示按倒序进行排序
print(v1) #[88, 79, 66, 11, 0, -1]

#字符串排序  是按字符串的首字母进行排序
name_list  = ['Alex', "test", 'eric']
print(sorted(name_list)) #['Alex', 'eric', 'test']
易错点:



字符串形式的数字

    

易错点:

  1. 数据和字符串是没办法进行比较大小
  2. 字符串形式的数字,比较大小
def func(x):
    return int(x.split(" ")[0])
print(sorted(name_list, key=func))
排序案例-sorted
  • 展示目录下面的所有文件,并进行排序
def func(x):
    return int(x.split(" ")[0])

file_path = 'day04-homework_列表.py'

name_list = os.listdir(file_path)
for item in sorted(name_list,key=func):
    print(item)

posted @ 2024-09-25 22:55  jhchena  阅读(3)  评论(0编辑  收藏  举报