python基础(二)

本文深入讲解Python中的四种主要数据类型:列表、元组、字典和布尔值。详细阐述每种数据类型的定义、特点、操作方法及内置指令,适合Python初学者和需要复习数据类型概念的开发者。

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

数据类型之---列表list

#和字符串不同,列表的值可以被修改、增添、删减,因为其每个字符的存储不需要是连续的,每个字符的存储都指向了下一个字符(在C语言中叫链表)。当出现修改时,将指向的位置改变就行,于是就无需重新开辟空间写入整个列表。

#对象.方法  --> 称为对象调用方法(正规叫法)

#定义方式

list = [12,213,['adfad','2131','adsf',[11,'sdf',33]],'adfkjl',1231]

#可列表里面嵌套多个类型,如列表、布尔值

#取值,修改

list[2]  --> ['adfad','2131','adsf',[11,'sdf',33],True]

list[0:2] --> [12,213]

list[2][3][1][0] --> s

#[3]代表list[2]的列表里的第4个值,[2]以此类推

'2131' in a    --> False
'2131' in a[2] --> True

#删除列表元素的几种方式

del list[2]

del list[0:2]

#列表与其他数据类型的转换

str1='adfaf' 

list1 = list(str1) --> ['a','d','f','a','f']        # (字符串转列表内部用的是for来逐个字符迭代)

str(list1) --> '['a','d','f','a','f']'      

#将含数字的列表中的元素合并

s = ''

for item in list1 :

  s = s + str(item)

#如果只含字符串

''.join(list)

#注意数字不能转换为列表(因为数字不可以用for迭代),需要现将数字转换为字符串

----------------------------------------------列表的一些内置指令------------------------------------------------

a = [21 ,123 ,23 ,2]

#追加单个内容到列表中(可追加任何类型)

a.append([11,'dsf'])  --> a=[21 ,123 ,23 ,2,[11,'dsf']]     # v = a.append(*) 的值为None (空)

#追加多个内容到列表中

a.extend([11,'dsf'])    --> a=[21 ,123 ,23 ,2,11,'dsf']      

a.extend('ad')           -->  a=[21 ,123 ,23 ,2,'a','d']

#实际等于

for item in [11,'dsf'] :

  a.append(item) 

#要追加内容到指定位置

a.insert(2,'ads') --> a=[21,123,'ads',23,2]  插到位置2

#清空列表

a.clear()

#复制

a.copy()

#计算元素出现的次数

a.count(123) --> 1       

# 获取当前值索引位置(从左到右第一个)

a.index(123) --> 1

#删除列表指定索引位置的某个值,并且获取它。不加参数默认为删除最后一位

v = a.pop(2)    --> a = [21 ,123 ,2]  v = 23 

#删除列表中的指定值

a.remove(21) --> a = [123 ,23 ,2]

#将当前列表反转

a.reverse() -->    a = [2 ,23 ,123 ,21]

#列表的排序(默认从小到大排)

a.sort() -->[2 ,21,23,123]

a.sort(reverse=True) # 从大到小

------------------------------------------------------------------------------------------

数据类型之---元组tuple

#元组(tuple)也是python中内置的一个容器类,元组中的数据一旦确定下来就不可更改,不能进行添加、删除、修改的操作(元组的一级元素不可修改,二级及一下可以,元组一级元素中的列表项),可以认为元组就是一个不可变的列表(list)

#定义方式(与列表的区别在于list=[ ]  tuple=() )

a = (11,'sdf',[11,22],('df',231),)                                        #为了与调用函数的写法 对象.功能()区分开,定义元组时最后一位多加一个逗号,

#跟列表一样,元组也能被索引、切片

b = a[4] ; b=a[0:2]

# 元组也是可迭代对象,可与字符串、列表互相转换

c = [11,22,33]

tuple(c)   --> 将列表c转换为元组

------------------------------------元组的两个指令----------------------------------

a.count()

a.index()

#用法与列表一致

------------------------------------------------------------------------------------------

 

数据类型之---字典dict

#元组定义,其中的元素称为键值对

info = {'k1' : 'v1' , 2 : 'v2' , (11,22,33): [1,2,3]  }

#字典里的每个元素的前一项称为key 后一项称为 value 

#注意列表、字典不能用作key。而value可是是任何类型的值,且不要有重复的key值

#字典是无序的,每次输出里面元素位置都不同,所以不能切片、索引

#如何获取字典中的value

info['k1']   -->'v1'

info[(11,22,33)] [2]     --> 3

#删除

del info['k1']

#for循环

for item in info :

  print(item)                      

#以上默认输出key,或者

for item in info.keys() :

  print(item,info[item])

#输出values

for item in info.values() :

  print(item)

#或者 info.items() --> 直接获得键值对

for a,b in info.items() :

  print(a,b)

 

#-----------------------------------------------------------------------------------------------------

info = {'k1' : 'v1' , 2 : 'v2' , (11,22,33): [1,2,3]  }

info.clear()

info.copy()

#根据序列创建字典

v = dict.fromkeys([1,2,3,],'值')    -->  v = {1:'值',2:'值',3:'值'}

#获取字典中的value,区别于直接 info[key] -->(要是key不存在于字典中的话直接报错,而info.get()默认会输出None,也可自己定义key不存在于字典中输出何值)

info.get('adsfdsa','不存在')             --> 不存在

info.pop('k1')        -->  'v1'

info.pop('adfdasfd','不存在')     --> '不存在'

#随机(默认删除最后一对)删除键值对并且获取值

v = info.popitem()  -->  v = 删除的键值对(item)

v,y = info.popitem() --> v = 删除的key y = 删除的value

#若输入的key存在则不修改,不存在则修改成新值,并输出新值.原始字典(info)不变

v = info.setdefault('k1','1234')  --> info = {'k1' : 'v1' , 2 : 'v2' , (11,22,33): [1,2,3]  }                                             v = v1

v = info.setdefault('新值',1234)  --> info = {'k1' : 'v1' , 2 : 'v2' , (11,22,33): [1,2,3]  , '新值' : 1234}                    v = 1234

#修改旧值,添加新值

info.update({'v1' : 123 , 'ttt' : 321})   -->  info = {'k1' : 123 , 2 : 'v2' , (11,22,33): [1,2,3]  , 'ttt' : 321}

#另一种写法

info.update(v1 = 123 , ttt = 321)   -->  info = {'k1' : 123 , 2 : 'v2' , (11,22,33): [1,2,3]  , 'ttt' : 321}

----------------------------------------------------------------------------------------------------------

布尔值(bool)

None  {} [] () 0 ''  False  都为 False 其余为True

 

 

 

TIPS:

#索引时  0: 可以获取到最后一位

#enumerate()使用

#enumerate在字典上是枚举、列举的意思
#对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
#enumerate多用于在for循环中得到计数
#例如对于一个seq,得到:

(0, seq[0]), (1, seq[1]), (2, seq[2])
#enumerate()返回的是一个enumerate对象,例如:

#如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:
list1 = ["a", "b", "c", "d"]
for i in range (len(list1)):
print i ,list1[i]
#上述方法有些累赘,利用enumerate()会更加直接和优美:
list1 = ["a", "b", "c", "d"]
for index, item in enumerate(list1):
print index, item
#enumerate还可以接收第二个参数,用于指定索引起始值,如:
list1 = ["a", "b", "c", "d"]
for index, item in enumerate(list1, 1):
print index, item
>>>
1 a
2 b
3 c
4 d

转载于:https://www.cnblogs.com/Matrixssy/p/10077796.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值