Python基础四(数据类型之列表、元组用法)

一、补充内容

" ".join()用法-----后加可迭代对象,可加字符串,可加列表

# join

s = 'alex wusir'

s1 = '*'.join(s)

print(s1)

输出--a*l*e*x* *w*u*s*i*r

for   else 、break 、continue用法

#遇到break跳出循环,不在执行下面代码
s = 'alex wusir'
for i in s:
    print(i)
    if i == 'e':
        break

  

#continue跳出本次循环,执行下一次循环
s = 'alex wusir'
for i in s:
    if i == 'e':
        continue
    print(i)

  

#for  else 遇到break不执行else,否则执行else内容
s = 'alexeweuesir'
for i in s:
    if i == 'e':
        pass
    print(i)
else:
    print(666)-------------打印

  

s = 'alexeweuesir'
for i in s:
    if i == 'e':
        break
    else:
        print(i)
else:
    print(666)---------------不打印

  

二、list增删改查

   #取列表中的元素,数据类型格式即为产出对应的数据类型

l1 = [1,'alex',True,[1,2,3],(2,3,4),{'name':'alex'}]
print(l1[0],type(l1[0]))----数字int
print(l1[1],type(l1[1]))----字符串str
print(l1[3],type(l1[3]))----列表list
#列表切片产生的列表仍是列表格式
print(l1[0:3:2])
print(l1[0:4])

一、列表增

1、append------l1.append(‘小黑’)

增加到列表的最后,附加、不增

l1 = [1,'alex',True,[1,2,3],(2,3,4),{'name':'alex'}]
l1.append('小黑')
l1.append([1,2,3])
print(l1)
输出 ['alex', True, 'wusir', 'ritian', 'taibai', 3, 2, '小黑', [1, 2, 3]]

  

#使用户利用append实现列表的添加

l1 = ['alex',True,'wusir','ritian','taibai',3,2]
while True:
    username = input('>>>/Q或q退出')
    if username.upper() == 'Q':break
    l1.append(username)
print(l1)

2、insert 插入----------l1.insert(1,'egon'

插入到对应索引的前一位

l1 = ['alex',True,'wusir','ritian','taibai',3,2]

l1.insert(3,'egon')
print(l1)

输出 ['alex', True, 'wusir', 'egon', 'ritian', 'taibai', 3, 2]

3、extend---------l1.extend('太白金星')

将可迭代对象拆分开添加至列表的最后

l1 = ['alex',True,'wusir','ritian','taibai',3,2]

l1.extend('sd')
l1.extend([2,4,5])
print(l1)

输出['alex', True, 'wusir', 'ritian', 'taibai', 3, 2, 's', 'd', 2, 4, 5]

  

二、列表删除

1、pop-----l1.pop.()  

 #默认删除最后一个.pop(2),  可以删除索引对应的元素,有返回值
l1 = ['alex',True,'wusir','ritian','taibai','dfs',2]

ret = l1.pop(4)
print(ret)  # 有返回值------taibai
print(l1)

输出
['alex', True, 'wusir', 'ritian', 'dfs', 2]

 

2、remove------l1.remove( 'a' )

按照元素去删除

l1 = ['alex',True,'wusir','ritian','taibai','dfs',2]
# remove 按照元素去删除
ret = l1.remove('alex')
print(ret) -----None#不可返回 

print(l1)
输出 [True, 'wusir', 'ritian', 'taibai', 'dfs', 2]

  

3、clear---l1.clear( )

清空列表--保留内存

l1 = ['alex',True,'wusir','ritian','taibai','dfs',2]

l1.clear()
print(l1)

输出空列表 【】---含有内存

  

4、del---del l1

功能一删除列表-------彻底删除,不含内存

l1 = ['alex',True,'wusir','ritian','taibai','dfs',2]

del l1
print(l1)
输出报错-----不含内存

  

功能二可以按照切片,按照索引去删除

l1 = ['alex',True,'wusir','ritian','taibai','dfs',2]

del l1[0]
print(l1)---- 输出[True, 'wusir', 'ritian', 'taibai', 'dfs', 2]

del l1[0:3]
print(l1)----输出['ritian', 'taibai', 'dfs', 2]

del l1[1::2]
print(l1)----输出['alex', 'wusir', 'taibai', 2]

  

三、列表 改------是先将列表里的被替换内容全部拿出后,再把需要替换的新内容全部加上去(迭代的添加)

 1、 按照索引去改

l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,]

l1[0] = '男神'

print(l1)----输出['男神', 'taibai', True, 'wusir', 'ritian', 3, 2, True]

  

2、按照切片去改-


l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,]

l1[0:2] = ['屌丝','alex']

print(l1)

输出---['屌丝', 'alex', True, 'wusir', 'ritian', 3, 2, True]

l1[0:2] = 1,2,3,4

print(l1)---输出 [1, 2, 3, 4, True, 'wusir', 'ritian', 3, 2, True]


 

四、列表 查

1、按切片,按索引查

l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,]

print(l1[0])

print(l1[0:3])

输出
alex
['alex', 'taibai', True]

  

2、for 循环查

l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,]

for i in l1:
    print(i)

结果依次全部输出

  

三、列表其他常见操作

一、len长度---元素个数

l2 = [1,3,6,8,7,4,2,9,10]
print(l2)
输出 9

二、count ---元素出现的次数

#Ture 为 1
l2 = [3,6,8,7,4,1,1,2,9,10]
ret = l2.count(True)
print(ret)
结果为2

 

三、index 通过元素找索引(列表中没有find)

l2 = [3,6,8,7,4,1,1,2,9,10]

print(l2.index(10))

结果为0

  

四、排序

1、sort ---从小到大排序

l2 = [3,6,8,7,4,1,1,2,9,10]

l2.sort()

print(l2)

输出
[1, 1, 2, 3, 4, 6, 7, 8, 9, 10]--列表数字大小排列,从小到大

 

2、sort(reverse=True)----从大到小

l2 = [3,6,8,7,4,1,1,2,9,10]

l2.sort(reverse=True)

print(l2)

输出
[10, 9, 8, 7, 6, 4, 3, 2, 1, 1]----从大到小

  

3、倒序---不按大小

l2 = [3,6,8,7,4,1,1,2,9,10]

l2.reverse()

print(l2)
输出[10, 9, 2, 1, 1, 4, 7, 8, 6, 3]-----列表反向排序

  

四、列表的嵌套

列表中含有列表--子元素下含有子元素

需求1:l1 = ['小新','egon','wusir',[99,'tiabai','ritian',[2,3]],2]中‘egon’首字母大写
l1 = ['小新','egon','wusir',[99,'tiabai','ritian',[2,3]],2]

l1[1] = l1[1].capitalize()

print(l1)
输出
['小新', 'Egon', 'wusir', [99, 'tiabai', 'ritian', [2, 3]], 2]

 

需求2:将列表l1 中"taibai"全部大写

l1[3][1] = l1[3][1].upper()

print(l1)
输出
['小新', 'egon', 'wusir', [99, 'TIABAI', 'ritian', [2, 3]], 2]

  

需求3:将列表l1中99 换成100

l1[3][0] = str(l1[3][0] + 1)

print(l1)

输出
['小新', 'egon', 'wusir', ['100', 'TIABAI', 'ritian', [2, 3]], 2]

  

五、元组tuple

子元素无法更改,但子元素中的子元素有可能更改

需求1:删除下列列表中【1,2,3】中的2

tu1 = (1,2,'wusir',[1,2,3],(2,3,4),'taibai',True)
tu1[3].pop(1)
print(tu1)
输出
(1, 2, 'wusir', [1, 3], (2, 3, 4), 'taibai', True)

  

需求2:输出列表tu1中的1出现的次数

tu1 = (1,2,'wusir',[1,2,3],(2,3,4),'taibai',True)

print(tu1.count(1))

输出
2---(Ture 也为1)

  

需求3:输出列表tu1中‘wusir’的索引

tu1 = (1,2,'wusir',[1,2,3],(2,3,4),'taibai',True)

print(tu1.index('wusir'))   #  元组同样没有find索引

输出
2

  

六、range用法

range  范围当做列表[ ],列表中的元素是数字,且可控的有效数字范围,一般与for搭配使用

for i in range(1,10):  #[1,2,3,4...9]
    print(i)
for i in range(1,101):  #[1到100]
    print(i)
for i in range(11):  #[0,1,2...10]
    print(i)
for i in range(1,10,2):  # [1,3,5,7,9]
    print(i)
for i in range(10,0,-1):  #[10到1]
    print(i)
for i in range(10,-2,-1):    # [10到-1]
    print(i)

 需求:实现输出 l1 = [1,2,3,'alex',[2,3,'wusir'],7]里面的每个子元素的依次输出

 

l1 = [1,2,3,'alex',[2,3,'wusir'],7]
for i in l1:
    if type(i) == list:  # 表示i的类型是列表
        for j in i:
            print(j)
    else:
        print(i)

 

  

posted @ 2018-01-24 18:15  GuoXY  阅读(163)  评论(0编辑  收藏  举报