Day 3-Python列表、元祖、词典

1.列表list-【】,列表对象调用XXX方法

(1)属性

  #列表也可以通过索引和切片取元素,内部可以存任何类型的数据,可嵌套列表,但整个列表是一个元素

  #内部存储规则为链表,每个元素会自动牵引到下个元素的位置,因此列表创建后是可以修改的

(2)修改和删除

#修改

li=[2,'ad','23',2]
li[1:3]='chris',26
print(li)

  #此时输出结果为[2, 'chris', 26, 2]

#删除 del x[2]  也可以删除多个(通过切片)

li=[2,'ad','23',2]
del li[3]
print(li)

  #此时输出结果为[2, 'ad', '23']

#in操作 判断某个元素是否在列表中,多个的话可以用and连接

li=[2,'ad','23',2]
v=2 in li
print(v)

  此时输出值为True

(3)取值,通过索引

li=[4,'ad',[5,3,[1,6],'asf'],'23',2]
v=li[2][2][1]
print(v)

  #列表中嵌套列表时,可通过多个索引定位,此时输出值为6

 (4)转换

#字符串转换成列表 li=list('asgadgcxbv')内部使用for循环,数字不可转换

  列表转换成字符串

如果列表中全是字符串直接使用join  li=['s','d']    v=‘’.join(li) print(v)

如果列表中既有数字,又有字符串时

a=[1,2,3,'gsda']
s=''
for i in a:
    s=s+str(i)
print(s)

#此时输出结果为123gsda

(5)append()原来值最后追加,无需再通过其他变量来接收,也可追加列表,如下

a=[1,2,3,'gsda']
a.append(2)
print(a)

#此时输出值为[1, 2, 3, 'gsda', 2]

(6)clear()清空列表,清空列表所有值

(7)copy() 拷贝列表,需要通过一个值接收

(8)count()计算元素个数

a=[1,2,3,'gsda',2]
b=a.count(2)
print(b)

#此时输出值为2,因为有2个2

(9)extend() 拓展原来的列表,参数是可迭代对象 内部执行for循环将每个元素加入,不同于append

(10)index() 根据值寻找元素的索引位置

a=[1,2,3,'gsda',2]
b=a.index(3)
print(b)

#此时输出值为2,既元素3的索引位置

(11)insert() 在指定索引位置插入元素

a=[1,2,3,'gsda',2]
a.insert(1,22)
print(a)

#此时输出值为【1,22,2,3,'gsda',2】

(12)pop() 默认删除最后一个值,同时还可获取删除的值,可添加索引参数指定删除某个值

(13)remove() 删除列表中的某个指定值,左边的优先 a=[1,2,3,'gsda',2] v=remove(2),此时输出值为[1,3,'gsda',2]

五个删除: 1. pop() 2. remove() 3.del li[0] 4. del li[0:3] 5. clear()

(14)reverse() 将当前列表顺序进行反转

(15)sort() 列表排序,默认为从小到大,可设置参数 reverse=True时 从大到小,参数可添加函数!!!

a=[1,3,3,2,5]
a.sort(reverse=True)
print(a)

#此时输出值为[5, 3, 3, 2, 1],字符串不可排序

列表为list类的面向对象

2.元组tuple-()-对列表的二次加工,第一级元素不可被修改,不能被增加或删除

 #一般写元组的时候,在最后一个括号前加入逗号

1.可以使用索引 [ ] 也可切片,也可for循环 也是可迭代对象

#列表、字符串和元组之间可以相互转换

(1)列表转元组  v=tuple(a)

  (2)  列表和元组转换为字符串时,若元素里都是字符串,则可直接用join函数 v=''join(tu)

2.第一级元素不可修改,第二级可以

tu=(1,33,'chris',[11,'22'],4,5,)
tu[3][0]='77'
print(tu)

此时输出为(1, 33, 'chris', ['77', '22'], 4, 5),11被替换成了77

3.count()获取指定元素在元组中出现的次数

4.index()获取某个值在元组中的索引位置

3.字典 (为类dict的对象)- {'a':'b','ew':'23'} 这里面包含两个键值对

#字典的value可以是任何值,字典的key不能是列表、字典 布尔值中True为1 False为0,注意key不能重复!!!

1.字典是无序的!!!

2.取值时,前面的key就是索引,不可以进行切片,因为无序

a={'b':3,'e':'ew'}
print(a['e'])

#此时输出为ew

3.字典支持del删除

4.for循环下的输出,默认为输出key

a={'b':3,
   'e':'ew',
   3:{'3',2}
   }
for i in a:
    print(i)

#此时输出值为:b,e,3

#可利用dict的功能取key、value 对应为a.keys()  a.values()

如下,需要输出key和values时

a={'b':3,
   'e':'ew',
   3:{'3',2}
   }
for i in a.keys():
    print(i,a[i])

此时输出值为

b 3
e ew
3 {'3', 2}

# i为for循环引导的索引,a【i】通过索引查找值

另一种方法,通过类dict的items()功能获取,记住要赋值两个变量,既k,v

a={'b':3,
   'e':'ew',
   3:{'3',2}
   }
for k,v in a.items():
    print(k,v)

 5.  dict.fromkeys() 根据序列,创建字典,并制定统一的值

a=dict.fromkeys([1,3,2],3)
print(a)

此时输出值为{1: 3, 3: 3, 2: 3}

6. get(),寻找key所对应的值,没有则为空,也可自己设定参数

a={'b':3,
    'e':'ew',
    3:{'3',2}
       }
v=a.get('b')
print(v)

a={'b':3,
    'e':'ew',
    3:{'3',2}
       }
v=a.get('9','wu')
print(v)

第一个v为3, 第二个v为wu

7. pop()移除值,后面可以赋予一个默认值

a={'b':3,
    'e':'ew',
    3:{'3',2}
       }
v=a.pop('b','wu')
print(a,v)

此时输出值为{'e': 'ew', 3: {2, '3'}} 3,删除的值3赋予给了v,如果删除的key不存在,则输出为wu

8.popitem()随机删除一个值,通过k,v来接收删除的值

a={'b':3,
    'e':'ew',
    3:{'3',2},
   4:'ee'
       }
k,v=a.popitem()
print(a,k,v)

此时输出值为{'b': 3, 'e': 'ew', 3: {2, '3'}} 4 ee

9. stedefault() 设置值,已存在则不设置,获取当前的key对应的值, 若不存在则添加进去

a={'b':3,
    'e':'ew',
    3:{'3',2},
   4:'ee'
       }
v=a.setdefault('222',5)
print(a,v)

此时输出值为{'b': 3, 'e': 'ew', 3: {2, '3'}, 4: 'ee', '222': 5} 5

10. update() 两种写法 a.update{'k1':'3','k2':'4'}  或者a.update(k1=3,k2=4)

4,布尔值为False的几种情况

#None ,'',(),[],{} 0 ==> False

l ist

原文地址:https://www.cnblogs.com/caixiaowu/p/12118447.html