python学习笔记(二)——列表(1)

上集回顾:python学习笔记(一)——hello world、变量、字符串、数字、禅

一、概述

  • 在python中,用方括号表示列表,用,分割列表中的元素

    	family = ['dad','mom','sister','brother','me']
    	print(family)
    

    如果直接打印,将会原样输出,包括方括号,就像这样

  • 访问列表中的元素,只需指出列表名称,再指出元素索引,将其放入方括号中即可,索引以0为开始值。
    print(family[0])

    输出 dad

  • 可以和之前的大小写结合起来,使代码更好看
    print(family[2].title())

    输出 :Sister

  • 对于不知道长度,或者长度比较长的列表,还可以用负数来表示下标,倒数第一个为-1,倒数第二个为-2.以此类推

    print(family[-1])
    print(family[-2])
    

    输出:
    在这里插入图片描述

  • 可以使用列表中的值来创建消息

    message = "I have a " + family[2] + " in my family."
    print(message)
    

    输出:I have a sister in my family.

二、编辑列表元素

2.1修改

要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值

list = ['l1','l2','l3','l4']
print("修改前:" + str(list))
list[0] = 'L1'
print("修改后:" + str(list) + '\n')

输出
在这里插入图片描述

2.2添加

print("原列表:" + str(list))

  • append() 在列表末尾添加元素
    # list.append('值')
    list.append('l4')
    print("在列表末尾增加新元素后:" + str(list))
    
  • insert() 在指定位置插入元素
    # list.列表名(位置,'值')
    list.insert(2,'l2.5')
    print("在指定位置2插入新元素后:" + str(list) + '\n')
    

输出
在这里插入图片描述

2.3删除

print("原列表:" + str(list))

  • del语句 删除指定位置元素
    del list[2]
    print("执行del list[2]后的列表:" + str(list))
    
  • pop() 弹出指定位置元素并可以再次使用
    # 可通过在括号中输入下标来指定要删除的值,不输入默认为最后一个元素。
    
    # 将list中指定元素弹出并存储到pop_list中
    pop_list = list.pop(2)
    print("执行pop(2)方法后的列表:" + str(list))
    print("打印弹出的元素:" + pop_list)
    

pop() 和del语句的区别

如果删除元素之后不再使用该元素 就用del语句
如果删除之后还要再次使用该值,就使用pop()方法。

  • remove() 根据值取出元素(重复的值只会取出一个)
    list.remove('l4')
    print("执行remove('l4')后的列表:" + str(list))
    
    # 将要取出的值存在一个新变量中,之后就可以通过调用该变量继续使用该元素
    too_ugly = 'L1'
    list.remove(too_ugly)
    print("打印取出的元素too_ugly:" + too_ugly)
    print("执行list.remove(too_ugly)后列表:" + str(list))
    

输出:
python学习笔记(二)——列表(1)_第1张图片

三、组织列表

3.1 排序(假设列表内容都为小写字母开头)

list = ['a1','d4','c3','b2']

  • sorted() 临时排序
    print("原列表:" + str(list))
    print("临时性排序的列表:" + str(sorted(list)))
    print("执行完临时性排序后再次打印列表:" + str(list))
    
  • sort() 永久性排序
    list.sort()
    print("执行完永久性正序排列后的列表" + str(list))
    

注意:
sort是方法,所以使用方法为list.sort()
sorted是函数,所以使用方法为sorted(list)

  • reverse = True 倒序排列(按小写字母)
    print("临时性倒序排列的列表" + str(sorted(list,reverse=True)))
    print("执行完临时性倒序排列的列表" + str(list))
    list.sort(reverse=True)
    print("执行完永久性倒序排列的列表" + str(list))
    print(str(list))
    

输出
python学习笔记(二)——列表(1)_第2张图片

3.2反转元素

reverse() 永久性反转列表元素排列顺序,不过恢复原列表只需再次执行reverse即可

```
list_reverse = ['sd','d','w','q','r','e']
list_reverse.reverse()
print(list_reverse)
list_reverse.reverse()
print(list_reverse)
```

在这里插入图片描述

3.3确定列表长度

len() 确定列表长度

print(len(list_reverse))

输出:6

四、练习

  • 3-1 姓名: 将一些朋友的姓名存储在一个列表中,并将其命名为names 。依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出来。

    names = ['name1','name2','name3']
    print(names[0])
    print(names[1])
    print(names[2] + "\n")
    
  • 3-2 问候语: 继续使用练习3-1中的列表,但不打印每个朋友的姓名,而为每人打印一条消息。每条消息都包含相同的问候语,但抬头为相应朋友的姓名。

    message = " ,how are you going?"
    print(names[0].title() + message)
    print(names[1].title() + message)
    print(names[2].title() + message + "\n")
    
  • 3-3 自己的列表: 想想你喜欢的通勤方式,如骑摩托车或开汽车,并创建一个包含多种通勤方式的列表。根据该列表打印一系列有关这些通勤方式的宣言,如“I would like to own a Honda motorcycle”。

    traffic = ['walk','bus','bike']
    print("I usually " + traffic[0] + " to school entrance,and than take the school " + traffic[1] + ".But sometimes I will by " + traffic[2])
    
  • 3-4 嘉宾名单 :如果你可以邀请任何人一起共进晚餐(无论是在世的还是故去的),你会邀请哪些人?请创建一个列表,其中包含至少3个你想邀请的人;然后,使用这个列表打印消息,邀请这些人来与你共进晚餐。

    inter_list = ['person1','person2','person3']
    message = " ,would you like join a party in my house today's evening?"
    print('Dear ' + inter_list[0].title() + message)
    print('Dear ' + inter_list[1].title() + message)
    print('Dear ' + inter_list[2].title() + message + "\n")
    
  • 3-5 修改嘉宾名单 :你刚得知有位嘉宾无法赴约,因此需要另外邀请一位嘉宾。

    • 以完成练习3-4时编写的程序为基础,在程序末尾添加一条print 语句,指出哪位嘉宾无法赴约。
    • 修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。
    • 再次打印一系列消息,向名单中的每位嘉宾发出邀请。
      print(inter_list[2] + "can't coming")
      inter_list[2] = 'insteadPerson1'
      print('Dear ' + inter_list[0].title() + message)
      print('Dear ' + inter_list[1].title() + message)
      print('Dear ' + inter_list[2].title() + message + "\n")
      
  • 3-6 添加嘉宾 :你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想想你还想邀请哪三位嘉宾。

    • 以完成练习3-4或练习3-5时编写的程序为基础,在程序末尾添加一条print 语句,指出你找到了一个更大的餐桌。
    • 使用insert() 将一位新嘉宾添加到名单开头。
    • 使用insert() 将另一位新嘉宾添加到名单中间。
    • 使用append() 将最后一位新嘉宾添加到名单末尾。
    • 打印一系列消息,向名单中的每位嘉宾发出邀请。
      message_newtable = " , I found a new table which is bigger than the old one"
      inter_list.insert(0,'newPerson0')
      inter_list.insert(1,'newPerson1')
      inter_list.append('newPerson2')
      print(inter_list)
      print('Dear ' + inter_list[0].title() + message_newtable)
      print('Dear ' + inter_list[1].title() + message_newtable)
      print('Dear ' + inter_list[2].title() + message_newtable)
      print('Dear ' + inter_list[3].title() + message_newtable)
      print('Dear ' + inter_list[4].title() + message_newtable)
      print('Dear ' + inter_list[5].title() + message_newtable + "\n")
      
  • 3-7 缩减名单 :你刚得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾。

    • 以完成练习3-6时编写的程序为基础,在程序末尾添加一行代码,打印一条你只能邀请两位嘉宾共进晚餐的消息。
    • 使用pop() 不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹出一位嘉宾时,都打印一条消息,让该嘉宾知悉你很抱歉,无法邀请他来共进晚餐。
    • 对于余下的两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀人之列。
    • 使用del 将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实程序结束时名单确实是空的。
      print("I only can invite two guest")
      delFirst = inter_list.pop()
      delSecond = inter_list.pop(1)
      delThird = inter_list.pop(1)
      delFourth = inter_list.pop(1)
      del_list = [delFirst,delSecond,delThird,delFourth]
      message_sorry = ', I am sorry to tell you I can not invite you'
      print(del_list[0].title() + message_sorry)
      print(del_list[1].title() + message_sorry)
      print(del_list[2].title() + message_sorry)
      print(del_list[3].title() + message_sorry)
      
      print(inter_list)
      message_stillInvite = ', Don not forget to come'
      print(inter_list[0].title() + message_stillInvite)
      print(inter_list[1].title() + message_stillInvite)
      del inter_list[0]
      del inter_list[0]
      print(inter_list)
      
  • 3-8 放眼世界 :想出至少5个你渴望去旅游的地方。

    • 将这些地方存储在一个列表中,并确保其中的元素不是按字母顺序排列的。
    • 按原始排列顺序打印该列表。不要考虑输出是否整洁的问题,只管打印原始Python列表。
    • 使用sorted() 按字母顺序打印这个列表,同时不要修改它。
    • 再次打印该列表,核实排列顺序未变。
    • 使用sorted() 按与字母顺序相反的顺序打印这个列表,同时不要修改它。
    • 再次打印该列表,核实排列顺序未变。
    • 使用reverse() 修改列表元素的排列顺序。打印该列表,核实排列顺序确实变了。
    • 使用reverse() 再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来的排列顺序。
    • 使用sort() 修改该列表,使其元素按字母顺序排列。打印该列表,核实排列顺序确实变了。
    • 使用sort() 修改该列表,使其元素按与字母顺序相反的顺序排列。打印该列表,核实排列顺序确实变了。
      desire = ['new zealand','hangzhou','yiwu','jingdezhen','tibet']
      print(desire)
      print(sorted(desire))
      print(desire)
      print(sorted(desire,reverse=True))
      print(desire)
      desire.reverse()
      print(desire)
      desire.reverse()
      print(desire)
      desire.sort()
      print(desire)
      desire.sort(reverse=True)
      print(desire)
      
  • 3-9 晚餐嘉宾 :在完成练习3-4~练习3-7时编写的程序之一中,使用len() 打印一条消息,指出你邀请了多少位嘉宾来与你共进晚餐。

    print(len(del_list))

  • 3-10 尝试使用各个函数 :想想可存储到列表中的东西,如山岳、河流、国家、城市、语言或你喜欢的任何东西。编写一个程序,在其中创建一个包含这些元素的列表,然后,对于本章介绍的每个函数,都至少使用一次来处理这个列表。

    countries = ['china','us','usa','german','french']
    print(countries)
    countries.append('cuba')
    countries.insert(1,'australia')
    print(countries)
    del countries[2]
    countries.pop(2)
    countries.remove('german')
    print(countries)
    print(sorted(countries))
    print(sorted(countries,reverse=True))
    print(countries)
    countries.reverse()
    print(countries)
    countries.sort()
    print(countries)
    countries.sort(reverse=True)
    print(countries)
    

你可能感兴趣的:(python)