python中列表和字典的使用

本文详细介绍Python列表的基础操作,包括创建、查找、增加、删除及修改等,并提供了实用的示例代码,帮助读者快速掌握列表的基本用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

列表

 

 

1.列表的创建
使用range(范围起点,范围终点,步长)

 

 

例如:list = list(range(1,20,2))

 

2.列表的查找
使用index(数据)方法
例如:

 
list1 = ['fh', 20, 'frr', 10, 'cj']
print(list1.index('cj'))

 

 

结果:
0

 

 

 

注意:如果查不到,报错!     查到则返回所在下标!
 

 

 

3.列表的数据增加
使用insert( ),append( ),extend( )方法
      ①.insert()方法
      list1.insert (下标,数据)

      例如:

list1.insert(2, 'cj')
      ②.append()方法
      list1.append(数据/列表)

      例如:

list1.append('cj')
list1.append([100, 200, 300])
     ③.extend()方法
     list1.extend(数据/列表),将数据或列表拆开插入目标列表
     例如:
list1 = ['fh', 20, 'frr', 10]

 
list1.extend('cj')list1.extend([10, 100, 1000])
     结果:
     ['fh', 20, 'frr', 10]      ['fh', 20, 'frr', 10, 'c', 'j', 10, 100, 1000]
 
4.数据删除
使用remove(),del/del(),clear(),pop()方法
     ①remove()方法
         功能:删除指定数据
         例如:
list1.remove('fh')

 

 


 
 

 

 

 

     ②pop()方法
         功能:如果参数位置写了下标表示的是删除指定下标的数据;如果不指定下标从结尾删除                    pop()都会有一个返回值,表示的就是删除的这个数据
         例如:

 
list1 = ['fh', 20, 'frr', 10, 'cj']
num = list1.pop(1)
list1.pop()
print(list1)
print(num)

 

       结果:['fh', 'frr', 10]
                  20

     ③clear()方法

     功能:清空列表。

     例如:


 

list1.clear()

 
     ④del/del()方法

 

 

     功能:删除列表
     例如:

 
del list1del(list1)
 

 

 

5.数据修改
 使用index()查找,然后根据下表直接修改

 

 

 

 例如:
list1[0] = 'xiaoqiu'  # 直接修改
print(list1)
num = list1.index('frr')   #  匹配后修改
list1[num] = 'cj'
print(list1)
补充:排序,拷贝,嵌套,推导式,常用技巧
1.排序
方法:sort(),sorted()
sort()默认正向,若要反向,加参数reverse=true

sorted( )是python自带函数,用法:sorted(列表名),需要赋值给另一个变量

 

 

才能使用。
例如:
newList = sorted(list1)
print(newList)
2.拷贝

 

 

分为深拷贝和浅拷贝
    ①浅拷贝:一般通过赋值进行拷贝,一改都改。

   例如:


 

list2 = list1print(list1)print(list2)list2.append(10)print(list2)print(list1)list1.remove(2)print(list1)print(list2)

 
 无论改哪个列表,两个列表都发生改变。

 

 

   ②深拷贝
   通过copy()方法进行拷贝,语法:list2 = list1.copy()
   此时无论改哪个,另一个不变。

 

 

3.列表嵌套
顾名思义,就是在一个列表中再定义列表
例如:[[1,2],[3,4],[5,6]]
用法类似于循环语句,根据下标进行数据的增删改查

 
# 一个学校,有3个办公室(列表),现在有8位老师(列表)等待工位的分配,请编写程序,完成随机的分配import random# random.randint(0,2)# 老师名字的列表names = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']# 办公室的列表offices = [[],[],[]]# 随机分配办公室 -- 遍历整个names,如果名字在names里面,放到列表(子列表)中去(追加数据到列表)for name in names: # 随机的列表.append(name) num = random.randint(0, 2) offices[num].append(name)# print(offices[0])# 打印信息: 办公室1的人数是4, 名字1 名字2i = 1 # 办公室编号for suboffice in offices: print('办公室%d的人数是%d' % (i, len(suboffice))) i += 1 # suboffice = ['a', 'c'] for name in suboffice: print(name, end=' ') print()
 

 

 

4.列表推导式
作用:用一个表达式去生成 一个有规律的列表  或  控制一个有规律的列表
相当于把条件后置,显示变量放在前边进行输出。一般条件是for循环,条件逻辑是一级一级嵌套的

 

生成规律列表的例子:


 

list6 = [i for i in range(0, 21) if i % 2 == 0]

 
控制列表内容的例子:

 
list8 = [i for i in mylist if len(str(i)) >= 3]
5.列表常用技巧

 

 

①合并
list3 = list1 + list2  //通过加法进行列表合并
print(list3)
list1.extend(list2)   //通过extend()方法进行列表合并
print(list1)
list1 += list2    //通过加法进行列表合并
print(list1)
list3 = ['hello']
list4 = list3 * 4    //通过乘法进行相同数据的成倍输出
print(list4)
②字符串和列表的相互转换

 

 

字符串转换成列表:split()方法
str1 = 'hello world my python'
list5 = str1.split(' ')
列表转换成字符串:join()方法。格式:'分割符号'.join(列表)
str2 = '...'.join(list5)
print(str2)

 

 

③判断数据是否是想要类型
函数isinstance(数据, 指定的数据类型)
if isinstance(ss, int):
④enumerate()方法
enumerate() : 返回一个列表,里面包含下标和数据的对应的元组(即列表中内容是一个个元组)
                      通过变量key,value可以进行列表中元组下标以及内容的输出
list3 = ['aa', 'bb', 'cc']
for i in enumerate(list3):
    print(i)
for key, value in enumerate(list3):
    print(key)
    print(value)
此过程也叫拆包,用于取数据和控制数据!
 
字典

 

 

 

1.字典的创建
字典不支持下标以及排序功能,所以它是无序的

错误用法:


 
dict1 = {'name': 'python', 'age': 28}print(dict1[0])
 

 

正确用法:


 

print(dict1['name'])

①空字典的创建:
dict1 = {   }
dict2 = dict.()
②有内容字典的创建:
dict3 = dict(字典各项)

 
dict4 = dict(name='gui', age=30)

 

 

dict4 = dict([('name', 'laowang'),('weizhi', 'gebide')])//注意语法格式

 

 

 

③fromkeys() 方法-- 创建键值对的值都是相同的形式的列表  要求第一个参数必须是列表,用来书写键名
fromkeys([], 键值对的值)

 

dict5 = dict5.fromkeys(['aa', 'bb'], 10)

 

 

 

2.字典查找,修改,增加
dict1 = {'name': 'python', 'age': 28}
# 通过键名查找数据,如果有这个键,返回对应的值;没有这个键则报错
#通过键名查找数据 如果等号赋值的话,如果有这个键则修改值;没有这个键,则新增这个键值对
dict1['name'] = 'gui'
print(dict1)

print(dict1['id'])
dict1['id'] = 100
print(dict1)

# get():通过键名查找数据;如果有这个键则返回对应的值;没有这个键返回的默认是None
# 如果设置了第二个参数,没有这个键的时候返回第二个参数(作用:给自己一个提示信息)
# print(dict1.get('name'))
# print(dict1.get('id', 'hello'))
# print(dict1)

# setdefault():通过键名查找数据,如果有这个键则返回对应的值;没有这个键返回的默认是None,
# 同时 默认增加一个键值对 - 键:None;如果设置了第二个参数,新增的键值对就是:键:第二个参数
# print(dict1.setdefault('id', 'hello'))
# print(dict1)

# update()
dict2 = {'name': 'laowang', 'sex': 'man'}
dict1.update(dict2)  # 用2 更新了1:既能修改又能新增
print(dict1)
print(dict2)
 

 

 

3.字典拷贝
浅拷贝,深拷贝,超深拷贝

 

 

①对于单个键值对应项:
   浅拷贝:通过赋值
dict2 = dict1

   深拷贝:copy()方法


 

dict2 = dict1.copy()

 
②对于一键多项,此时深拷贝结果同浅拷贝一样

 


 

dict100 = copy.deepcopy(dict10)

 
deepcopy()适用于多项数据的内容修改,此时能保证原数据不被修改。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值