列表与元组

列表(list)

  1. 列表(list)是包含0个或多个元素的有序序列
  2. 创建列表的方式:将逗号分隔的不同元素使用方括号括起来即可
    listname=['name','id','card']
  3. 列表的索引也是从0开始的,可以通过下标索引访问列表中的元素
  4. 列表的赋值与引用:listname由实际数据产生,作为列表对象,赋值给listname2仅作为一个listname的引用,存储空间中实际数据只有一份,listname、listname2都是对该存储空间数据的引用,所以,当listname改变存储空间中的存储数据时,listname2也会发生改变,原因:他们都是来自同一个存储空间的数据。
    listname=['card','id','name']  
    listname2=listname          #listname2引用listname,并不是赋值
    print(listname,listname2)
    listname[0]='admin'
    print(listname,listname2)

  5. 也可以使用列表函数:list(),将字符串、range()、元组等对象转换为列表,语法格式为:list(obj),obj为需要转换的对象,例:
    list("hello world")
    list(range(1,10,2))

  6. 遍历列表可以使用while与for循环
    str=['sfgsgs','rjgerknbke','itergjtekrn','ebjv']
    i=0
    #while循环
    while i<len(str):
        print(str[i])
        i+=1
    #for循化
    for y in str:print(y)
    

  7. 列表的基本操作:append()、extend()、insert();分别作用为:末尾列表添加新的元素、在列表末尾一次性追加另一个序列中的多个值、将指定对象插入到列表的指定位置。

    str=['sfgsgs','rjgerknbke','itergjtekrn','ebjv']
    str2=['a','b','c']
    str.append('d')        #在尾部添加新的元素‘d’
    print(str)
    str.extend(str2)         #在str尾部添加str2序列的元素
    print(str)
    str.insert(1,'hh')       #将'hh'插入到str列表下标索引1的位置
    print(str)

  8. 查找元素与计数:list.index(obj):在列表中查找元素,用于返回元素首次出现的位置,如果不在则抛出异常;list.count(obj):统计指定字符出现的次数;
    str=['sfgsgs','rjgerknbke','itergjtekrn','ebjv','gag','ebjv']
    a=input('请输入数据:')
    if a in str:
        b=str.index(a)
        c=str.count(a)
        print('元素:{0},在str列表首次出现的位置:{1},出现了{2}次'.format(a,b,c))
    else:print("查无数据")

  9.  删除元素:del命令、pop()方法、remove()方法
    str=['sfgsgs','rjgerknbke','itergjtekrn','ebjv','gag','ebjv']
    del str[0]      #删除str列表索引为0的元素
    print(str)
    str.pop(1)      #删除str列表索引为2的元素,默认为删除最后一个元素
    print(str)
    while 'ebjv' in str:str.remove('ebjv')    #remove用于删除列表中第一个匹配项,用循环则可以删除所有的指定值的匹配项
    print(str)

  10. 分片赋值
    str=['1','2','3','4','5','6']
    str[2:]=['10','9']      #从索引2开始更改成‘10’,‘9’
    print(str)
    str[1:1]=['8','7','6']  #索引1开始到1结束插入‘8‘’7’‘6’
    print(str)
    str[1:6]=[]             #索引1-6插入插入空元素
    print(str)

  11. 列表排序:reverse()、sort()、sorted();

    #格式如下:
    list.reverse()			#元素反向存放
    
    list.sort([key=None],[reverse=False])		
    #key为key为可选参数,如果指定了该参数就会按照该方法进行排序,reverse也是可选参数,表示是否反向排序,默认为false(正序)
    
    sorted(iterable,[key=None],[reverse=False])
    #iterable表示迭代对象(列表名),它与sort的区别于sort方法是在原列表上进行修改,而sorted方法是产生新列表,不会修改原列表
    str=['1','6','3','4','5','6']
    str.reverse()       #将str列表中的元素反向存放
    print(str)
    str.sort()    #对元素值进行正向排序,默认为false正序
    print(str)
    a=['aaa','aaaaa','aa','aaaasaa','a']
    a.sort(key=len,reverse=True)      #按照长度反向排序
    print(a)
    b=sorted(a,key=len,reverse=False) #将a列表正序排序并赋值给b
    print(a)
    print(b)

元组(tuple)

  1. 元组与列表类似,不同之处在于不能修改元组的元素,元组使用圆括号包含元素,而列表是使用方括号包含元素。创建时可以省略圆括号。
  2. 元组的基本操作:
    1. 访问元组:与列表类似,可以使用下标索引来访问元组中的值
      str=('1','6','3','4','5','6')	#创建元组
      for i in range(0,len(str)):
          print(str[i],end=" ")				#用循化输出元组
          i+=1
          
      //print
      1 6 3 4 5 6 
    2. 合并元组:元组中的元素值是不允许修改的,但是可以对元组进行连接组合
      str=('1','6','3')
      str2=('4','5','6')
      str3=str+str2
      print(str3)
      
      //print:
      ('1', '6', '3', '4', '5', '6')
    3. 元组的遍历:可以使用循化来遍历数组
      str=('1','6','3','4','5','6')
      for i in str:print(i,end=" ")
      
      //print
      1 6 3 4 5 6 
  3. 元组的内置函数:len()求长度、max()求最大值、min()求最小值、tuple()以一个序列为参数,并把它转换为元组,如果本身是元组则原样返回

     

    str=('1','7','3','4','5','6')	#创建元组
    a=len(str)	#求元组程度
    b=max(str)	#求元组中最大值
    c=min(str)	#求元组中最小值
    str_1=['xfa','sfas,','sfa']
    d=tuple(str_1)  #将str_1转换为元组
    print(a,b,c,d)

典型案例

简易计算器:编写一个简易计算器,根据要求输入的数字和四则运算符号,计算结果并输出。

operator=['+','-','*','/']
a=float(input("请输入第一个数:"))
operator_1=input("请输入运算符:")
b=float(input("请输入第二个数:"))
if operator_1 not in operator:print("您输入的运算符有误,请输入四则运算符")
else:
    if operator_1=='+':re=a+b
    elif operator_1=='-':re=a-b
    elif operator_1=='*':re=a*b
    elif operator_1=='/':re=a/b
    print(a,operator_1,b,'=',re)