Python操作列表(需要注意的部分)

 

  • 对于列表a、b,注意区分赋值a=b和切片复制a=b[:]

    赋值:两者发生关联,对应的是同一个内存,修改其中一个,另一个随之同步改变;

    复制:两个独立的表,互不影响。

  • python中的布尔类型:True、False首字母大写,否则不能识别

    >>>user=['admin','bob','join']

    >>>user.sort(reverse=true #将列表按首字母逆序排列

    >>>print(user)

    NameError: name 'true' is not defined  #报错

    将true改为True执行代码后输出:

    ['join','bob','admin']

  • 列表解析

    列表解析将for循环等和创建新元素的代码合并成一行,并自动附加新元素,使代码更加精炼

      >>>squares = []  #生成列表

      >>>for value in range(1,11):  

      >>>  squares.append(value**2)

      >>>print(squares)  

       输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]  

    使用列表解析实现上述功能:

      >>>squares=[value**2 for value in range(1,11)]

      >>>print(squares)

       输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]  

    例:比较两组列表元素是否重复,且忽略大小写

      >>>current_users=['admin','Bob','join','lucy','jeck']

      >>>new_users=['Admin','bob','clear']

      >>>  for user in new_users:
      >>>    if user.lower() in [users.lower() for users in current_users]:  #将两组列表同时转换为小写再对比
      >>>      print("please input the other username!")
      >>>    else:
      >>>      print("ok,the username can be used!")

      输出:  please input the other username!

           please input the other username!

           ok,the username can be used!

     考虑列表current_users内容是否被修改:

      >>>print(current_users)

     输出:   ['admin','Bob','join','lucy','jeck']      #可以判断出上述列表解析没有修改current_users参数

  •  对于元组(键/值对)

    Python不关心键/值对的存储顺序,而只跟踪键和值之间的关联关系

    在向元组添加新的键/值对时,添加的元素随机排列;

  • 嵌套

    1.当需要在字典中将一个键关联到多个值时,就可以在字典中嵌套一个列表

      >>> favorite_languages = {

      >>>   'jen': ['python', 'ruby'],
      >>>   'sarah': ['c'],
      >>>   'edward': ['ruby', 'go'],
      >>>   'phil': ['python', 'haskell'],
      >>>   }

    2.字典也可以嵌套字典

    例:>>> users = {
      >>>   'aeinstein': {
      >>>   'first': 'albert',
      >>>   'last': 'einstein',
      >>>   'location': 'princeton',
      >>>   }

      >>> }

    ...

 

posted on 2017-11-25 10:34  ❤飞扬  阅读(305)  评论(0)    收藏  举报