day4-基础数据类型(list、tuple)

目录

1.列表

1.1列表的创建(三种方式)

(1)常用

(2)不常用

(3)列表推导式

1.2列表的索引切片

1.3增

(1)append:追加,给列表的最后面追加一个元素

(2)insert:在列表的任意位置插入元素

(3)extend:迭代追加,在列表的最后面迭代着追加一组数据

1.4删

(1) pop:通过索引删除列表中对应的元素,该方法有返回值,返回值为删除的元素

(2) remove:通过元素删除列表中该元素,如果删除的元素不在列表中会报错

(3) clear:清空列表

(4) del:

1.5改

1.6查

1.7公共方法

(1)len:计算列表的长度

(2)count:查找元素在列表中出现的次数

(3)index:找元素的索引,找不到报错

(4)排序

(5)反转 

1.8 列表的嵌套

2.元祖tuple

2.1元祖的索引与切片

2.2公共方法

(1)len():计算元祖的长度

(2)count(): 查找元素在元祖中出现的次数

(3)index(): 查找元素的索引,找不到报错

2.3 join()方法

2.4 range()


1.列表

  • 列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。
  • 列表是有序的,有索引值,可切片,方便取值。
  • 以"[]"括起来,每个元素以逗号隔开,可以存放各种数据类型

1.1列表的创建(三种方式)

(1)常用

l1 = [1, 2, '熊猫']

(2)不常用

l1 = list()     #空列表

#l1 = list('iterable')  #可迭代对象

l1 = list('123')

print(l1)         #['1', '2', '3']

(3)列表推导式

l1 =  [i for i in range(1,5)]

1.2列表的索引切片

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']

索引

#索引

l1 = li[0]
print(l1)   #alex

l2 = li[-1]
print(l2)   #taibai

切片

#切片
l3 = li[0:3]
print(l3)   #['alex', [1, 2, 3], 'wusir']

l4 = li[:-1]  
print(l4)   #['alex', [1, 2, 3], 'wusir', 'egon', '女神']

l5 = li[::2]
print(l5)   #['alex', 'wusir', '女神']
 
l6 = li[::-1]
print(l6)   #['taibai', '女神', 'egon', 'wusir', [1, 2, 3], 'alex']

1.3增

li = ['taibai','alex','wusir','egon','女神']

(1)append:追加,给列表的最后面追加一个元素

li.append('日天')    #['taibai','alex','wusir','egon','女神', '日天']
print(li)
while 1:
    username = input('>>>')
    if username.strip().upper() == 'Q':
        break
    else:
        li.append(username)
print(li)

(2)insert:在列表的任意位置插入元素

li.insert(4,'春哥')
print(li)    #['taibai','alex','wusir','egon','春哥','女神']

(3)extend:迭代追加,在列表的最后面迭代着追加一组数据

li.extend('二哥')
print(li)      #['taibai','alex','wusir','egon','女神', '二', '哥']
 

1.4删

li = ['taibai','alex','wusir','egon','女神']

(1) pop:通过索引删除列表中对应的元素,该方法有返回值,返回值为删除的元素

name = li.pop(1)
print(name,li)  #alex ['taibai', 'wusir', 'egon', '女神']

name = li.pop()  #默认删除最后一个
print(name,li)   #女神 ['taibai', 'alex', 'wusir', 'egon']

(2) remove:通过元素删除列表中该元素,如果删除的元素不在列表中会报错

li.remove('taibai')
print(li)    #['alex', 'wusir', 'egon']

(3) clear:清空列表

li.clear()
print(li)    #[]

(4) del:

del li    #删除列表
print(li)   #打印li会报错,内存中已经没有li这个变量

#按照索引删除该元素
del li[1]
print(li)  #['taibai', 'wusir', 'egon', '女神']

#切片删除该元素
del li[1:]
print(li)     #['taibai']

#切片(步长)删除该元素
del li[::2]
print(li)  #['alex', 'egon']

1.5改

li = ['taibai','alex','wusir','egon','女神']
#按照索引改值
li[0] = '男兽'
print(li)   #['男兽', 'alex', 'wusir', 'egon', '女神']

#按照切片改值(迭代着增加)
li[0:3] = '松鼠asdfghjkl'
print(li)    #['松', '鼠', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'egon', '女神']

li[0:3] = [1,2,3,'春哥','咸鱼哥']
print(li)      #[1, 2, 3, '春哥', '咸鱼哥', 'egon', '女神']

#按照切片(步长)改值(必须一一对应)
#不连续切片替换,替换的值的长度必须和切片的值的长度一致,如果不一致,会报ValueError错误
#li[::2]可以取到列表['taibai','wusir','女神'],总共取到三个值,替换的时候也必须替换三个值
li[::2] = '大熊猫'
print(li)    #['大', 'alex', '熊', 'egon', '猫']

li[::2] = [1,2,3]
print(li)    #[1, 'alex', 2, 'egon', 3]

1.6查

li = ['taibai','alex','wusir','egon','女神']
#for循环
for i in li:
    print(i)

#索引
li[0]

1.7公共方法

li = ['taibai','alex','wusir','egon','女神']

(1)len:计算列表的长度

l = len(li)
print(l)  #5

(2)count:查找元素在列表中出现的次数

num = li.count('taibai')
print(num)  #1

(3)index:找元素的索引,找不到报错

i = li.index('wusir')
print(i)   #2

(4)排序

ls = [1,5,4,7,6,2,3]

#正向排序
ls.sort()
print(ls)   #[1, 2, 3, 4, 5, 6, 7]


#反向排序
ls.sort(reverse=True)
print(ls)   #[7, 6, 5, 4, 3, 2, 1]

(5)反转 

#反转
ls = [1,5,4,7,6,2,3]

ls.reverse()
print(ls)

1.8 列表的嵌套

li = ['taibai','武藤兰','苑昊',['alex','egon',89],23]
print(li[1][1])  #藤
name = li[0].capitalize()
li[0] = name
print(li)     #['Taibai', '武藤兰', '苑昊', ['alex', 'egon', 89], 23]
li[2] = li[2].replace('昊','ritian')
print(li[2].replace('昊','ritian'))  #苑日天
print(li)    #['Taibai', '武藤兰', '苑日天', ['alex', 'egon', 89], 23]
li[3][0] = li[3][0].upper()
print(li)    #['Taibai', '武藤兰', '苑日天', ['ALEX', 'egon', 89], 23]

2.元祖tuple

  • 元组:不可变的列表,又被称为只读列表,用"()"括起来,里面可以放任何数据类型的数据
  • 可查询、可循环、可切片

2.1元祖的索引与切片

索引 

tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')

print(tu[4])        #[2, 3, 4, 'taibai']
print(tu[4][1])     #3
print(tu[-1])       #alex
print(tu[-2][2])    #4

切片 

tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')

print(tu[1:3])        #(2, 3)
print(tu[-4:-1])      #(3, 'alex', [2, 3, 4, 'taibai'])
print(tu[::])         #(1, 2, 3, 'alex', [2, 3, 4, 'taibai'], 'egon')
print(tu[-1:-5:-1])   #('egon', [2, 3, 4, 'taibai'], 'alex', 3)
print(tu[5:1:-1])     #('egon', [2, 3, 4, 'taibai'], 'alex', 3)
print(tu[1:5:1])      #(2, 3, 'alex', [2, 3, 4, 'taibai'])
print(tu[-5:-1:1])    #(2, 3, 'alex', [2, 3, 4, 'taibai'])

2.2公共方法

(1)len():计算元祖的长度

tu1 = (1,2,3,4,84,5,2,8,2,11,88,2)

print(len(tu1))        #12​

(2)count(): 查找元素在元祖中出现的次数

tu1 = ('熊猫', '狮子', '大象', '猴子','猴子')

print(tu1.count('猴子'))        # 2

(3)index(): 查找元素的索引,找不到报错

tu = ('松鼠', [1, 2, 3], '香蕉', '女神')

print(tu.index('女神'))         #3

2.3 join()方法

可迭代对象中的元素以指定的字符连接生成一个新的字符串

s = 'alex'

s1= '_'.join(s)
print(s1)       #a_l_e_x

​  列表转化成字符串list -----> str 

li = ['taibai','alex','wusir','egon','女神',]

s = '++'.join(li)
print(s)        #taibai++alex++wusir++egon++女神
​

2.4 range()

可创建一个整数列表

for i in range(3,10):
    print(i)
for i in range(10):
    print(i)
for i in range(0,10,3):
    print(i)
for i in range(10,0,-2):
    print(i)
for i in range(10,-1,-2):
    print(i)
li = [1,2,3,5,'alex',[2,3,4,5,'taibai'],'afds']

for i in li:
     if type(i) == list:
        for k in i:
            print(k)
     else:print(i)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值