Python基础知识(二)基本数据结构list列表和dict字典

介绍

list和dict,顾名思义,就是列表和字典,这是python中非常基础的数据结构,也是非常重要且用途最广的数据结构

列表list就是一串糖葫芦

list是python的一种内置数据结构,想象成一串糖葫芦。python提前设定好了list的特点和一些固定操作(或方法或函数),计算机知道该怎么进行具体操作。list用中括号表示,里面的值用英文的逗号分开。

特点与操作

1. list有这么几个简单的特点:

(1) 长度不固定,就像糖葫芦可以串8个,串10个,当然也有奸商可能就串6个,甚至4个

(2) 类型不固定,糖葫芦可以串山楂,黑枣,橘子等等,list里面也可以放字符串,数字,列表等等

(3) 可以修改,就好像制作糖葫芦,你本来要串个山楂,结果串了个橘子,可以把对应的那个错的修改了就好啦。

2. list可以做这样的几个操作:

(1) append : 追加元素,相当于给糖葫芦一个个的串山楂

(2) +,extend: 多个列表相加, 相当于把两串糖葫芦连在一起

(3) insert: 向指定位置插入一个值,假如要给糖葫芦的第二个位置串一个黑枣

(4) remove, pop: 移除某一个元素,糖葫芦中间某个坏了,给剔除

(5) a in list_b: 检查某个元素是否存在,检查一个纯山楂的糖葫芦里是不是有黑枣

(6) sort : 排序,这个糖葫芦比较难办,假装要一串山楂从小到大排列的糖葫芦吧!

(7) [:]   : 切片操作,假如你吃糖葫芦时候,就喜欢吃第2个到第5个,该怎么啃?

代码演示:

help(list)
dir(list)


hulu1 = ['zha','zha','zha','zha']
hulu2 = [1,2,3,4,5,6,7]
hulu3 = []
hulu3 = hulu1+hulu2
(1)hulu3
['zha', 'zha', 'zha', 'zha', 1, 2, 3, 4, 5, 6, 7]
(2)hulu3.extend(hulu1)
hulu3
['zha', 'zha', 'zha', 'zha', 1, 2, 3, 4, 5, 6, 7, 'zha', 'zha', 'zha', 'zha']
(3)hulu1.append('zao')
hulu1.append('zao')
hulu1.append('zao')
hulu1
['zha', 'zha', 'zha', 'zha', 'zao', 'zao', 'zao']
(4)len(hulu1)
7
len(hulu3)
15
(5)hulu1.insert(3, 'xxx')
hulu1
['zha', 'zha', 'zha', 'xxx', 'zha', 'zao', 'zao', 'zao']
(6)hulu1.remove(3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
hulu1.remove('xxx')
hulu1
['zha', 'zha', 'zha', 'zha', 'zao', 'zao', 'zao']
(7)hulu1.pop()
'zao'
hulu1
['zha', 'zha', 'zha', 'zha', 'zao', 'zao']
hulu1.pop()
'zao'
hulu1
['zha', 'zha', 'zha', 'zha', 'zao']
(8)hulu1.insert(2, 'yyy')
hulu1
['zha', 'zha', 'yyy', 'zha', 'zha', 'zao']
hulu1.pop(2)
'yyy'
hulu1
['zha', 'zha', 'zha', 'zha', 'zao']
y in hulu1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'y' is not defined
'yyy' in hulu1
False
'zha' in hulu1
True
hulu1
['zha', 'zha', 'zha', 'zha', 'zao']
hulu1.sort()
hulu1
['zao', 'zha', 'zha', 'zha', 'zha']
s=[5,2,6,8,34,7,8]
s.sort()
s
[2, 5, 6, 7, 8, 8, 34]
s=[5,2,6,8,34,7,8,'a1','b5', 'a6','b2','a3']
s.sort()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() < int()
s
[2, 5, 6, 7, 8, 8, 34, 'a1', 'b5', 'a6', 'b2', 'a3']
s=[5,2,6,8,34,7,8,'am','bw', 'af','bs','an']
s.sort()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() < int()
s=['am','bw', 'af','bs','an']
s.sort()
s
['af', 'am', 'an', 'bs', 'bw']
s[1]
'am'
s[3]
'bs'
s[3:]
['bs', 'bw']
s[:2]
['af', 'am']
s[:]
['af', 'am', 'an', 'bs', 'bw']
s[::2]
['af', 'an', 'bw']
s[::-1]
['bw', 'bs', 'an', 'am', 'af']
s='asdfghjk'
s[::-1]
'kjhgfdsa'
s[:5]
'asdfg'
s[3:]
'fghjk'
s[::3]
'afj'

字典

python的dict这种数据结构可以直接理解为字典,给你一个词,这个词在python的字典里叫做key,键,用这个词可以找到它相关的意思或者说具体内容,这个内容在python的字典里,叫做key的值或者value,或简单叫作v。

dict用大括号表示,里面用英文的逗号分隔多个组,用冒号隔开每一组的key和v

特点与操作

1. dict的特点:

(1)key是不可变的,很简单去理解,查单词的时候,如果查到一半这个词自己变了,那肯定查的就是别的词儿了。这个key的类型可以是int,float,或是string。你可以理解用目录的页面编号去查找某一页,或者用一个单词去查她的意思。

(2)字典默认是无序的。因为字典只是一堆kv的集合,相当于一个大书包,各种书随便丢在里面了。排序的问题以后再说。

2. dict的常用操作:

help(dict) # 查看帮助,浏览全局
dir(dict) # 查看有哪些方法

(1){'k':'v'}, dict(zip(list_k, list_v)): 创建方法(使用kv或者zip)

d={'k':2,'x':"ttt"} # 用大括号建立字典
d
>>> {'x': 'ttt', 'k': 2}
 list_k=[1,2,'n']
list_v=['hello','python','hhhh']
d=dict(zip(list_k, list_v)) # 用zip和kv的列表建立字典
 d
>>>{1: 'hello', 2: 'python', 'n': 'hhhh'}

(2)d['k'],d.get('k'): 获取元素(直接中括号里用k或get方法)

d['1'] # 用不存在的k会报错
>>>Traceback (most recent call last):  File "<stdin>", line 1, in <module>KeyError: '1'
 d[1]
>>>'hello'
d['n'] = 'happy' # 更新key的值
 d
>>>{1: 'hello', 2: 'python', 'n': 'happy'} 
 d.get('n') # 用get获取
>>>'nb'
>>> d.get('m') # 没有k的时候为空
>>> d.get('m', 'yyy') # 取不到时候设置默认的值
'yyy'

(3)'k' in d: 检测k是否存在

'm' in d   # 判断是否存在k
>>> False
 'n' in d
>>> True

(4)d.keys(): 获取所有的k

d.keys()
>>>dict_keys([1, 2, 'k'])

(5)d.values(): 获取所有的值

d.values()
>>>dict_values(['hello', 'python', 'tttt'])

(6)del d['k']: 删除k

 del d['n'] # 删除k
 d
>>>{1: 'hello', 2: 'python'}
 d['k']='tttt' # 直接添加k和v到字典,k之前可不存在
 d
>>>{1: 'hello', 2: 'python', 'k': 'tttt'}

(7)d1.update(d2): 更新值,同k被覆盖

dict[1]='aaaaaaa'

dict[2]='bbbbbbb'

d1  d2
>>>>>{1: 'aaaaaaa', 2: 'bbbbbbbb'}
>>> d2["k2"]="yyyy"
>>> d2
{2: 'sdfsdf', 4: 'sdfsdf', 'k2': 'yyyy'}
>>> d
{1: 'hello', 2: 'python', 'k': 'tttt'}
d.update(d2) # 更新,相同的k会被覆盖

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的列表字典是两种常用的数据结构,它们的基本操作如下: 1. 列表基本操作: - 创建列表:使用方括号[]或list()函数创建一个空列表,或者在方括号中添加元素创建一个非空列表。 - 访问列表元素:使用下标索引访问列表元素,下标从0开始。 - 修改列表元素:使用下标索引修改列表元素。 - 列表切片:使用[start:end]的方式获取列表的一个子列表,其中start表示起始下标,end表示结束下标(不包含)。 - 列表拼接:使用+运算符将两个列表拼接成一个新的列表。 - 列表重复:使用*运算符将一个列表重复n次。 - 列表长度:使用len()函数获取列表的长度。 - 列表排序:使用sort()方法对列表进行排序。 - 列表迭代:使用for循环对列表进行迭代。 2. 字典基本操作: - 创建字典:使用大括号{}或dict()函数创建一个空字典,或者在大括号中添加键值对创建一个非空字典。 - 访问字典元素:使用键访问字典元素,键可以是数字、字符串、元组等不可变类型。 - 修改字典元素:使用键修改字典元素。 - 删除字典元素:使用del语句删除字典中的键值对。 - 字典长度:使用len()函数获取字典的长度。 - 字典迭代:使用for循环对字典进行迭代,可以使用items()方法获取键值对,keys()方法获取键,values()方法获取值。 下面是一些示例代码: 1. 列表操作示例: ```python # 创建列表 list1 = [1, 2, 3] list2 = list(range(4, 7)) # 访问列表元素 print(list1[0]) # 输出:1 # 修改列表元素 list1[0] = 0 print(list1) # 输出:[0, 2, 3] # 列表切片 print(list1[1:]) # 输出:[2, 3] # 列表拼接 list3 = list1 + list2 print(list3) # 输出:[0, 2, 3, 4, 5, 6] # 列表重复 list4 = list1 * 3 print(list4) # 输出:[0, 2, 3, 0, 2, 3, 0, 2, 3] # 列表长度 print(len(list1)) # 输出:3 # 列表排序 list5 = [3, 1, 2] list5.sort() print(list5) # 输出:[1, 2, 3] # 列表迭代 for i in list1: print(i) ``` 2. 字典操作示例: ```python # 创建字典 dict1 = {'name': 'Alice', 'age': 18} dict2 = dict([('name', 'Bob'), ('age', 20)]) # 访问字典元素 print(dict1['name']) # 输出:Alice # 修改字典元素 dict1['name'] = 'Cathy' print(dict1) # 输出:{'name': 'Cathy', 'age': 18} # 删除字典元素 del dict1['age'] print(dict1) # 输出:{'name': 'Cathy'} # 字典长度 print(len(dict1)) # 输出:1 # 字典迭代 for key, value in dict2.items(): print(key, value) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值