python基本数据类型之——列表

  li=['小王',‘小宁’, [a, b, [d, e, f ],  c ], ‘小张’]

www.98455.com 1     一个一个输出

      s=s+str(i)

一旦修改或者拼接,都会造成重新生成字符串;

  s='abcdefg'

  s=s+str(item)

  “集合“,”内部可以放置任何东西

4、赋值运算

 

s=''

=================list之灰魔法================

定义:①:不同元素组成

2、可以进行for循环(可迭代对象)

八、字符串格式化

   v = ' '.join(li)

 一、整形  int   

  索引切片删除: del li [2,4]    print(li)

li = [11,22,33,22,44]v = li.index(22) # 寻找当前元素的索引,找到第一个之后就不在找了print(v)v = li.index(22,2,4) # 可加起始位置print(v)v = li.insert(0,99) # 在指定位置0, 插入指定元素99print(v)

  逗号分隔每个元素,

2、for

  字典的value可以是任何值

注意:转换为bool值  :  bool()

  如果列表中即有数字又有字符串,需要自己写一个for循环

注意: value  可是任意值

6、删除

1、字典是无序的

  print(li[3])           print(li[3:-1])

           ②:无序

  索引修改: li [ 2 ] =120    print(li)

 

 二、元祖
tuple     

 www.98455.com 2

3、可以通过索引取值,  或者切片取值(切片取值的结果也是列表)

 

1、 append追加 li = [11,22,33,44]错误方法: v = li.append('alex') print(v) 打印出来为none,说明v中为空因为字符串不能修改,而列表可以直接修改,所以:可以直接写 li.append('alex') print(li) 打印结果为:[...'alex']  或者: li.append(['alex'])      print(li) 打印结果为: [...['alex']] 2、clear清空列表 li.clear() print(li)3、copy拷贝 浅拷贝:v=li.copy() print(v)4、count 计算元素出现的次数 v = li.count(22) print(v)5、extend 扩展原列表 参数必须是:iterable可迭代对象(能被for循环) li.extend([1992,'xiaowang']) print(li) 打印结果为:[...,1992, 'xiaowang']或者 li.extend('小王同学') print(li) 打印结果为:['小',‘王‘,‘同’, ’学’] 6、index 获取当前值的索引位置(最左优先) v = li.index(22) print(v) 或者可以选取范围 v=li.index('alex',1,3)7、insert 指定索引位置插入元素 li.insert(位置,插入的值) 例如: li.insert(0,'alex') print(li)》》》》》》》》》补充《》《》《》《》《》《》源码中出现: index索引,value值8、pop 删除指定位置的值 不指定索引时,默认删除最后一个值,并获取删除的值 v = li.pop() print(li) print(v) 指定索引时,删除指定位置的值,并获取删除的值 v = li.pop(1) print(li) print(v)9、remove 删除列表中的指定值,左边优先(括号内要填入删除的内容) li.remove(11) print(li)10、reverse 反转,将当前列表进行反转  li.reverse() print(li)11、sort排序 从小到大排序: li.sort() 从大到小排序 li.sort(reverse=True) 欠两个参数:讲函数时补充 cmp, key

 

1、循环字典中所有的key for item in info.keys(): print(item)2、循环字典中的所有values(值) for item in info.values(): prent(item) 3、既要循环key又要循环字典中所有的值 for item in info.keys(): print(item,info[item]) 那么可以简写为: for k, v in info.items(): print( k, v )《》《》《》《》字典的方法《》《》《》《《》》1、clear 清空2、copy 浅拷贝3、fromkeys 根据序列创建字典,并且制定统一的值 用法: v= dict.fromkeys(['k1', 123, 'k2'], 22)4、通过索引取key,如果字典中没有会直接报错 get 用法:查找字典的key,key不存在时可以指定默认值 方法一: dic = {"k1":23, "k2": 24} v= dic.get("k3") print(v) 如果k3不在字典中,则返回None 方法二: dic = {"k1":23, "k2": 24} v= dic.get("k3",1111) print(v) 如果k3不在字典中,则返回1111 5、items6、 keys7、 pop 删除。既可以指定所要删除的值,又可以拿到删除掉的值 方法一: dic = {"k1":23, "k2": 24} v = dic.pop('k1') print(dic,v) 方法二:设定具体值,当要删除的key不存在时,返回到设置的值 dic = {"k1":23, "k2": 24} v = dic.pop('k5',1111) print(dic,v) 8、 popitem随机删除,并返回删除的值 dic = {"k1":23, "k2": 24} v,k = dic.popitem() print(dic,v,k) 9、setdefault设置值,如果值已经存在,并获取存在key对应的值 如果key不存在,创建并获取新创建的key的值 例如: dic = {"k1":23, "k2": 24} v = dic.setdefault("k111","alex") print(dic,v)10、update 更新dic = {"k1":23, "k2": 24}方法一:dic.update({'k1': 1111, 'k3',123}) print(dic)方法二: dic.update(k1=123, k3=345, k5='alex') print(dic) 

 

一、列表----list

 二者的区别为  若为 ② 则 .isdecimal 为false       . isdigit 为true   

9、字符串转换成列表

 

  li=['alex', '小名', [12, 23, 45],
23, 23, '小花']

www.98455.com 3

1、查找字典内容

test='12'v=test.isdigit() # 判断字符串是否只包含数字 print(v)

4、extend扩展,在元祖中同样适用

test='alexalex'v=test.index('8') # 从开始往后找,获取其位置 ,可指定其寻找的起始位置,找不到时程序报错,故一般使用find命令,找不到时 运行结果为-1print(v)

2、列表中可以嵌套任何类型

for item in li

10、列表转换成字符串

www.98455.com 4

   tu = (11, 'alex',  ( 28, 29 ), 22, [33, 44 ], 55)

 

www.98455.com,  li = list(s)

1、

7、支持 in 操作

 

》》》》》》》》两个方法《》《》《》《》《》《count 获取指定元素在元祖中出现的次数index 获取某个指定元素的索引,可以设定起始位置查找

www.98455.com 5

  索引删除: del li [1]     print(li)

test='\totijd\n'v=test.isprintable() # 判断是否存在不可见的(如\n、\t) ,或运行结果不可显示的字符 print(v)

  布尔值,列表、字典不能作为字典的key

www.98455.com 6

2、删除key :   del info["k1"]

5、

  li = ['xiaozhang', 'xiaowang']

一般方法:

   print (v)

print(v)        True

    for i in li :

li = [1,12,9,'age',['苟陇辉',['19','10'],'你'],'alex',True]v = li[4][1][0][1]      # 索引取值一直往里找print(v)结果为94、(1)s = 'asdfghkl'list(s) # 转化功能 字符串转化为列表,内部使用的for循环,注意: 数字不可被转化,不可使用for循环print(list(s))

  v = 'alex' in li         print(li)

test='tuys'v=test.isalpha() # 判断字符串是否只包含字母 汉字print(v)

    s=' '

test='alexex'v=test.rfind('ex',2,5) # 从右往左找,规定范围在>=2,<5,之间,获取其位置, 注意:无论从左往右还是,从右往左数,都是左边第一个字符 索引为0print(v)

  索引切片修改: li [1:3] = [27, 28]

for item in info.values       
循环‘values’

5、元祖的一级元素不可被修改,元祖中嵌套的列表可以被修改

www.98455.com 7

         
列表是有序的,列表元素可以被修改

3、

        按照惯例一般在末尾价格逗号来识别

 

5、元祖是有序的

www.98455.com 8

1、列表格式:

test='alexalex'v=test.count('ex',5,8) # 去字符串里寻找子序列('ex')出现的次数,指定寻找的起始 和 结束 位置 注意字符串第一位为0print(v)

    print(s)

test='aLEx'v=test.swapcase() # 大小写转换print(v)

3、for循环

 

  中括号括起来,

www.98455.com 9

=====================list类中提供的方法===================

li = [11,22,33,22,44]v = li.pop() # 默认删除最后一个元素print(li) # 获取删除后的列表print(v) # 获取删除的值li.pop(1) # 删除指定索引的元素print(li)print(li.pop(1))li = [11,22,33,22,44]li.remove(22) # 删除指定的元素print(li)li.clear() # 清空列表print(li)

    li = [12,13,14,'xiaozhang', 'xiaowang']

1、

  1、可通过索引取值,切片取值

13、

  print(li[2][2][0])

test=' xalex 'test1='al\te\tx'# v1=test.lstrip() # 去除左边空格# v2=test1.lstrip() # 去除‘\t’‘\n’# v3=test.rstrip() # 去除右边空格# v4=test1.rstrip() # 去除‘\t’‘\n’# v5=test.strip() # 去除所有空格# v6=test1.strip() # 去除‘\t’‘\n’test2='xalex'v7=test2.lstrip('xa') # 去除指定字符print(v7)6、test='testasdsddfg'v1=test.partition('s') # 以目标's'分割,找到第一个s后分,只能分割三块v2=test.rpartition('s') # 以目标's'分割,从右找 找到第一个s后分,只能分割三块v3=test.split('s',) # 以目标's'分割,找到第一个s后分,但是不显示分割字符sv4=test.rsplit('s') # 以目标's'分割,从右找到第一个s后分,但是不显示分割字符sv5=test.split('s',2) # 以目标's'分割,找到2个s后停止分割,且不显示分割字符sprint(v1)print(v2)print(v3)print(v4)print(v5)

  若列表中的元素只有字符串,直接用字符串join方法

  print(item)

info = {"k1": "v1", "k2": "v2"} 键值对

 

三、字典 dict

8、

 

5、比较运算

4、支持for循环,   while循环。

                     
 原子: 数字、字符串

  元素不可被修改,且元素不能被增加或者删除,但是可以被查看

www.98455.com 10

  print(li)

12、

3、因为是可迭代对象:字符串、列表、元祖可以相互转换

 

v = info[key]    例如: v=info["k1"]

17、

5、列表元素可以进行修改

1、索引取值:v = tu[0]

  列表中的元素可以是数字、字符串、列表、布尔值、等所有的都能放进去

 

8、嵌套列表查询方式

                 
③:映射:字典

特例:test.splitlines() 
表示根据换行符‘\n’分割      test.splitlines(True) 则显示换行符‘\n’,
test.splitlines(False),则不显示换行符‘\n’。

   print(v)

www.98455.com 11

 

可变:列表,字典

3和4 、

  print(item)   

 
 设置值,若key以存在,则不设置,获取当前k对应的值;
不存在时,设置并获取当前K对应的值

li = [1,12,9,'age',['苟陇辉',[19,10],'你'],'alex',True]print(li[3]) #print(li[3:5])li[1] = 120print(li)li[1] = [11,22,33,44]print(li)li[2:4] = [120,90]print(li)del li[1]print(li)del li[2:6]print(li) # 可通过索引、切片 取值,删除其中的元素

 

9、

www.98455.com 12

print(s)

3、

2、

.isnumeric 也可识别 汉字‘二’

         
 'k3':[11,22,33,{'kk1':'vv1','kk2':'vv2'},'kk3':(11,22,)]

2、

test='苟陇辉苟' # for 循环格式 for 变量名 in 字符串:for v in test: # 变量名 print(v)

7、

其余均为真。

4、

 

 

li=['123','alex']

test='username\temail\tpassword\ngoulonghui\tglh020@qq.com\t123\nweiguoquan\tweiguoquan@qq.com\t234'v=test.expandtabs(20) # 从开始往后找制表符'\t',20个一组,找到后用空格自动补齐20,可用于制作表格print(v)

      dic.popitem  随机删除

10、

 

布尔值:  结果 为‘真’  true   或者 结果为 
‘假’  false

6 、v = dic.pop('k1',90)   
 找不到K值时,不报错,可指定 90  结果   
注意:不写k时,默认删除最后一个

同样支持for循环,while 循环

test='aeiou'test1='12345' # 获得对应关系v='asidou'v1=str.maketrans('aeiou','12345') # 替换功能new_v=v.translate(v1)print(new_v)

 

 

1、

 

11、

             key    列表,字典,不可为key
;bool值  True  默认=1   False  默认=0,若是重复是  则不显示

www.98455.com 13

v = list(tu)     v = '_'.join(tu)(
只有字符串时)

www.98455.com 14

b=bool(a )’

方法:# 集合:# s = set('hello') # 定义一个集合# print(s)# s = {1,2,3,4,5,'6'}# s.add('2') # 添加一个元素# print(s)# s = {1,2,3,4,5,'6'}# s.clear() # 清空列表# print(s)# s = {1,2,3,4,5,'6'}# s1 = s.copy() # 复制# print(s1)# s = {1,2,3,4,5,'6'}# s.pop() # 随机删# print(s)# s = {1,2,3,4,5,'6'}# s.remove('6') # 指定元素删除,找不到时报错# s1 = s.discard('6') # 指定元素删除,找不到时不报错# v = ['aaa','bbb','ccc']# v1 = ['aaa','bbb','eee']# s = set(v)# s1 = set(v1)# print(s,s1)# print(s.intersection(s1)) # 交集# print(s&s1) # 交集## print(s.union(s1)) # 并集# print(s|s1) # 并集## print(s.difference(s1)) # 差集# print(s1.difference(s)) # 差集## print(s.symmetric_difference(s1)) # 交叉补集# print(s^s1) # 交叉补集## s.difference_update(s1) # 差集之后 将得到的集合赋值给给s (即更新)# print(s)# s1 = {1, 2}# s2 = {1, 2, 3, 4}# print(s1.issubset(s2)) # 结果为 True s1是s2的子集# print(s2.issuperset(s1)) # True s2是s1的父集# s1.update(s2) # 更新多个值# s1.add(5) # 更新一个值# s1.union(s2) # 不更新# print(s1)# s = set( ) # 定义可变的集合# s = frozenset() # 定义不可变的集合# names = ['alex','glh','alex','wc'] # 简单去重# s = set(names)# print(s)# names = list(s)

# '   '  只要里面有东西 就为真

15、

3、支持for循环

count=count+1  即  count+=1

 

 

test='aLex'v=test.center(20,'*') # 表示 设置宽度,并将内容居中,其中20代表总长度,'*'代表空白处的未知填充,只能有一个字符,可有可无print(v)

         
 ③:集合中的元素必须是不可变类型:数字、字符串、元祖

        

 

test='_123rt'v=test.isidentifier() # 判断 标识符 格式是否正确 注意:标识符同字符串规则一样,不能使用数字开头print(v)

4、

1、转换功能

                 v='alexalexalex'

 

print(v)

test='Gou long hui'v=test.istitle() # 判断是否为标题(标题中每一个首字母都需大写)print(v)v=test.title() # 转换为标题print(v)

 

注意:

for (k,v) in info.items()     
 循环K,V

 

test='alex'v=test.endswith('ex') # 字符串以什么结尾 print(v) # v=test.startswith('a') 表示字符串以什么开头 
test='i am {name},age{a}'v=test.format(name='alex',a=19) # 格式化,将一个字符串的占位符替换为指定的值。注意格式的准确性,括号必须为大括号print(v)

 

test='124'v=test.isdecimal() # 判断字符串是否只包含数字print(v)

         

name='苟陇辉'v= '苟' in nameprint(v)user='alex'pwd=123v=user=='alex' and pwd==124 or user=='ales'and pwd=='123' print(v)

一般方法:

特殊用法:

 三、列表list

1、算数运算符:

www.98455.com 15

www.98455.com 16

 

基本数据类型

五、字典 dict

 

七、集合:   s = {,,,}

www.98455.com 17

test=input('请输入:')v=range(0,len(test))for item in v: print(item,test[item])

2、in 操作

test='alexex'v=test.find('ex') # 从开始往后找,找到第一个之后,获取其位置print(v)

 

v=''.join(li)

 

li = ['11','22','33','44']li.append(5) # 直接在原值后面追加一个print(li)li.append([99,'苟陇辉']) # 只将一个整体以列表的形式加进去print(li)li.extend([99,'苟陇辉']) # 将每一个元素都加进去print(li)
test='AleX'v=test.casefold() #表所有字母变小写print(v)

 

www.98455.com 18

3、

8、dic.uptade({'k1':'1234','k3':'3333'}) 
  更新字典,若K以存在,则更新其V,若K不存在,加一个进去。

www.98455.com 19

相关文章

Comment ()
评论是一种美德,说点什么吧,否则我会恨你的。。。