day3:字符串列表元组的相关学习

补充内容

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

Ellipsis
help(print)
print(...)
a,b,c,*d=1,2,3,4,5,6
print(a,b,c,d)
name='david'
age=12
print('her name is %s,her age is %d'%(name,age))
print('her name is'+name+",her age is "+str(age))

格式化字符串

%号格式化

占位符

格式描述
%dy有符号的整数
%s字符串
%c字符及ASCII码
%o无符号八进制整数
%x/%X无符号十六进制整数
%e/%E浮点数,科学计数法
%f浮点数

format格式化

(1)位置映射

print("Name:{},age:{}".format('tom',18))

(2) 关键字映射

print('{address},name:{},age:{}'.format('tom',19,address='sdsd'))

(3) 索引获取

print("第一个元素是:{0[0]},第二个元素是{0[1]}".format(('www.','baidu')))

列表

li=[]
print(type(li))
li=[1,2,3,'abv','vpn',['I','love','sda']]
sr='asd'
li1=list(sr)
li1=['I']
li2=['Love','PYTHON']
print(li1+li2)
li2=['C','i','t','y','City','sd',[1,2,'sd'],'sd','aa','sdsd']
print(len(li2))
print(li2[0],li2[-7])
print(li2[:5])
print(li2[::-1])
print(li2[7][1])

print(id(li2))
li2.append(li1)
print(li2)
li2.extend(li1)
print(li2)

li[5]='xxx'
li[2:6]=['x','y','z']
print(li)

pop()
  • 不指定索引,默认删最后一个元素
  • 删除指定索引对应元素
remove()
li.remove("e")
  • 移除第一次遇到的指定元素
del li[5]
del li[]
  • 删除指定下表元素
  • 删除整个列表
clear()
  • 清空列表元素

遍历

  • 元素遍历

    for i in li:
    print(i)
    
  • 索引遍历

    for i in range(len(li)):
    print(i)
    
  • 枚举遍历

    enumerate() ,对于一个可迭代的对象
    for i in enumerate(li,2):
        print(i)

排序

li.reverse()
li.sort()
li.sort(reverse=True)

练习

1.input()函数实现往空列表中添加元素,当输入"q"的时候,结束输入,并返回列表。
2.随机生成30个0-10的随机整数,并统计每个数出现的次数,
返回的结果形式为[[0, 3], [1, 4], … , [10, 5]]

 list1=[]
 while True:
     ss=input("请输入元素:")
     if ss!='q':
      list1.append(ss)
     else:
         break
 print(list1)
j=1
list2=[]
while j<=30:
    rand=random.randint(0,10)
    list2.append(rand)
    j+=1
list4=[]
for i in range(10):
    value1=list2.count(i)
    li3=[]
    li3.append(i)
    li3.append(value1)
    list4.append(li3)
print(list4)

深浅拷贝

  • 浅拷贝

    只拷贝列表的第一层,如果列表里还有列表,修改其中一个二级列表后,浅拷贝的二级列表也会随之变化,因为嵌套列表的元素指向的还是同一个位置。

  • 深拷贝

​ 深拷贝拷贝对象所有的元素,包括多层嵌套的元素,因此是完全开辟了一个新的内存存储区。

列表解析式(列表生成式)

  • 用来生成列表的特定的语法形式

  • 格式

    [表达式 for 迭代元素 in 可迭代对象]

  • 实现原理

    迭代[可迭代对象]中的每一个元素

    每迭代一次的结果赋值给对应的的迭代元素。再通过表达式运算得到一个新的值

    最后所有通过表达式计算的值以一个列表的形式返回

print([x for x in range(10) if x %2==0])

三目元素符


y=10
x=y+1 if y>10 else y-1
print(x)
name=[1,2,3]
subjuct=[2,3,4,5]
ls= [3*[i,j] for i in name for j in subjuct ]
print(ls)

元组

  • 有序

  • 可以重复

  • 不可更改

元组的创建

空元组的创建

tp=()

单元素元组的创建

tp=(1,)

单元素元组的创建,需要在单元素后面追加逗号

多元素元组的创建

  • 拼接

  • 重复

  • 索引(偏移) 切片

    tp=(1,2,3,4,5,6)
    tp2=(7,8,9,10,11)
    print(tp+tp2)
    print(tp[1])
    print(tp[2:4])
    • 元组不可修改元素指的是最外一层元素,内层元素可以改变

  • 索引查

  • 切片查

  • index()

  • max(tp),min(tp)

  • 枚举enumrate

    for i ,k in enumrate(tp):

    print i ,element

  • 不行
  • 只能修改内层元素

  • 不行

  • 不能删除1某个元素

  • 可以通过del删除整个元组

    print(tp+tp2)
    print(tp[1])
    print(tp[2:4])

    
    - 元组不可修改元素指的是最外一层元素,内层元素可以改变
    
    

  • 索引查

  • 切片查

  • index()

  • max(tp),min(tp)

  • 枚举enumrate

    for i ,k in enumrate(tp):

    print i ,element

  • 不行
  • 只能修改内层元素

  • 不行

  • 不能删除1某个元素

  • 可以通过del删除整个元组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值