Python学习笔记之列表

闲暇之余,想看看Python的世界是个什么样子,毕竟现在这门语言十分的火热,有着大量的学习资料以及参考书。今天看完了Head First Python,当然里面的大量的练习并没有完成,不过总体的感觉就是这门语言很强大,特别是对数据的处理方面好像有着很大的优势,于是开启了真正的学习之旅,这本笔记不知道能够写到那个阶段,且学且记录吧。

什么是列表

可以理解为其他编程语言中的数组,有着各种各样非常方便的操作。Python的数组十分的灵活,里面可以包含任何的数据类型,元素与元素之间可以没有任何的关系,也没有类型的依赖。

定义列表

使用方括号[] 来表示列表,例如:

name = ['Bob','Peter',3,['Hello','World']]

访问列表元素

使用列表变量加上索引:

name[2]

注意索引从0开始,和其他语言的数组类似,2表示列表中第三个元素。

修改列表元素

name[0]="Frank"

添加列表元素

  • 末尾添加

    name.append("Godlike")

    末尾添加一个新元素。

  • 插入到具体位置

    name.insert(2,"Darrin")

    在第三个元素前插入。

删除列表中的元素

  • 删除指定位置的元素

    del name[2]

    删除列表中第三个元素。

  • 删除最后一个元素

    del_element=name.pop()

    删除最后一个元素,并且可以直接使用。当然pop也可以删除任何位置的元素,需要指定具体位置。

  • 根据值删除

    name.remove("Frank")

    删除列表中值是Frank 的元素。

对列表进行操作

  • 排序 - sort()

    new_list = ['张三','李四','Frank','Darrin']
    print(new_list)
    new_list.sort()
    print(new_list)

    输出:

    2017-12-15_10-36-43.png

    问题:对于中英文混搭的列表,排序错乱,如何解决?

    网络答案:http://gerry.lamost.org/blog/?p=338

  • 排序 - sorted()

    复制一个排序后的列表,原列表保持不变。

    new_list = ['张三','李四','Frank','Darrin']
    another_list = sorted(new_list)
    print(new_list)
    print(another_list)
  • 反转 - reverse()

    new_list = ['张三','李四','Frank','Darrin']
    new_list.reverse()

    输出:

    ['Darrin', 'Frank', '李四', '张三']

  • 列表的长度 - len()

    length=len(name)

  • 遍历 - for

    new_list = ['张三','李四','Frank','Darrin']
    for item in new_list:
      print(item)
  • 部分访问 - 使用索引范围

    从指定的开始位置开始遍历,到达指定位置的前一个元素结束。

    new_list = ['张三','李四','Frank','Darrin']
    print(new_list[1:3])

    输出为:

    ['李四', 'Frank']

  • 复制列表

    old_list = ['张三','李四','Frank','Darrin']
    new_list = old_list[:]

特殊列表

  • 数值列表 - range()

    存储一组数字,python提供很多工具,可以帮助我们有效的处理数字列表。

    • 创建

    numbers=list(range(1,9))

    定义一组1到8的数字,注意,是到8而不是9。

    • 定义步长
    numbers=list(range(1,11,2))
    print(numbers)

    输出结果:

    [1, 3, 5, 7, 9]

    • 统计
    numbers=list(range(1,20,3))
    print(numbers)
    print(min(numbers))
    print(max(numbers))
    print(sum(numbers))

    输出结果:

    2017-12-15_12-59-08.png

  • 元组 - tuple

    1. 元组的元素不能修改
    2. 元组的创建使用小括号()
    3. 元组的访问和列表相同
    4. 元组中的元素不能删除
    5. 如果元组中只有一个元素,需要添加一个逗号结尾
    tup = (10,15,20)
    print(tup)
    tup = (20,30,40)
    print(tup)
    
    # tup[0] = 60
    
    
    # print(tup)
    
    
    # Traceback (most recent call last):
    
    
    #   File "list.py", line 86, in <module>
    
    
    #     tup[0] = 60
    
    
    # TypeError: 'tuple' object does not support item assignment
    
  • 字典 - dictionary

    字典是一系列key-value的匹配列表,每一个key都和一个value匹配,与Key相关的值可以使任何的python对象。字典使用{}来定义,key和value之间使用”:”进行分隔。

    print('字典练习')
    dic={'color':'red','age':25,'hobby':['basketball','football']}
    print(dic)
    
    #按key取得value
    
    print(dic['color'])
    
    #修改字典中的对象,没有则添加
    
    dic['color'] = 'blue'
    dic['name'] = 'bob'
    print(dic)
    
    #删除
    
    del dic['name']
    print(dic)
    
    #遍历字典
    
    for key,value in dic.items():
      print('\nKey: ' + key)
      print('value: ' + str(value))
    
    #遍历字典中的key
    
    for key in dic.keys():
      print(key.title())
    
    #字典中存储字典 - JSON
    
    plants={
      'address':{
          'city':'Shanghai',
          'street':'zhangjiang',
      },
      'products':{
          'name':'pc',
          'price': 1234,
      },
    }
    print(plants['address']['city'])
  • 集合 - set()

    类似于列表,但是每个元素必须唯一。

    集合是无序的,不能通过索引进行访问。

    print('集合测试')
    set1=set('good morning')
    set2=set('good afternoon')
    print(set1)
    print(set2)
    print(set1 & set2) #交集
    print(set1 | set2) #并集
    print(set1 - set2) #差集
    print(set1 ^ set2) #对称差集

    测试结果:

    2017-12-15_13-42-02.png

结语

基本的操作语句就不详细的做笔记了,基本上和其他的编程语言没有什么太大的区别。

接下来学习函数和类。

猜你喜欢

转载自blog.csdn.net/eksbobo/article/details/78812147