Python中元组列表与字典学习笔记

引言

这篇文章介绍python中的三种组合数据类型,文章后半段会介绍如何在这些组合数据类型中使用"分片"取出数据。

文章目录

0×1.元组

在python中,元组使用中括号来创建,如果括号中仅包含一个元素,需要在元素末尾添加一个逗号(不添加逗号数据会被创建成字符串或数值数据类型),元组在创建后,不能添加删除其中的元素,其值是固定不变的,请看下面的实例:

#创建三个元组,b元组仅包含一个字符串元素,所以末尾需要添加一个逗号,否则b将被创建为字符串对象,c元组是一个多维元组,包含了a和b元组
          >>> a=(1,2,3,4,5)
          >>> b=("www.qingsword.com",)
          >>> c=(a,b)

          #分别打印出三个元组中的元素
          >>> print(a)
          (1, 2, 3, 4, 5)
          >>> print(b)
          ('www.qingsword.com',)
          >>> print(c)
          ((1, 2, 3, 4, 5), ('www.qingsword.com',))

          #打印出a元组第一个元素,python的索引起始是从0开始的
          >>> print(a[0])
          1

          #打印出a元组中最后一个元素,len()函数将得到a元组元素的个数,因为索引是从0开始的,所以元素个数减一,就是最后一个元素的索引号
          >>> print(a[len(a)-1])
          5

          #另一种简便的获取元组中最后一个元素的方法,直接使用-1,以此类推,获取倒数第二个元素就使用-2作为索引值
          >>> print(a[-1])
          5
          >>> print(a[-2])
          4

          #获取多维元组中,第0个元素(a元组)中索引位置为2的值,也就是a子元组中的3了
          >>> print(c[0][2])
          3
0×2.列表

python中,可以使用中括号创建列表,在上面的元组实例中的大部分操作都适用于列表,只需要将圆括号替换成中括号即可,不同点是,列表中仅包含一个元素时,不需要在末尾添加逗号,另外,列表可以添加或删除元素,请看下面的实例:

#创建三个列表,其中c为多维列表,包含a和b
          >>> a=[1,2,3,4,5]
          >>> b=["www.qingsword.com"]
          >>> c=[a,b]

          #打印出三个列表中的元素
          >>> print(a)
          [1, 2, 3, 4, 5]
          >>> print(b)
          ['www.qingsword.com']
          >>> print(c)
          [[1, 2, 3, 4, 5], ['www.qingsword.com']]

          #使用list.append()方法,给a列表添加一个元素6
          >>> a.append(6)
          >>> print(a)
          [1, 2, 3, 4, 5, 6]

          #append()方法一次只能添加单个元素,而list.extend()方法一次可以添加多个元素
          >>> a.extend([7,8,9])
          >>> print(a)
          [1, 2, 3, 4, 5, 6, 7, 8, 9]

          #利用extend()方法的特性,可以将一个列表中的元素完全复制给另外一个列表,下面创建了一个空列表d,然后将c列表中的元素复制给d
          >>> d=[]
          >>> d.extend(c)
          >>> print(d)
          [[1, 2, 3, 4, 5, 6, 7, 8, 9], ['www.qingsword.com']]

          #使用list.remove()方法可以删除列表中的元素,这个方法接收的不是索引值,而是元素值(本例直接删除了a列表中的元素1和2)
          >>> a.remove(1)
          >>> a.remove(2)
          >>> print(a)
          [3, 4, 5, 6, 7, 8, 9]

          #list.pop()方法接收一个索引值,如果不指定索引值则默认为最后一位元素的索引值,这个方法将取出对应元素,然后从列表中删除这个元素
          >>> print(a.pop())
          9
          >>> print(a)
          [3, 4, 5, 6, 7, 8]
          >>> print(a.pop(0))
          3
          >>> print(a)
          [4, 5, 6, 7, 8]

          #使用set()能够删除列表中的重复值
          >>> e=["a","a","b","c","b"]
          >>> print(e)
          ['a', 'a', 'b', 'c', 'b']

          >>> e=set(e)
          >>> print(e)
          {'a', 'b', 'c'}
0×3.字典

python中,使用大括号能够创建字典,字典中每个元素都是以"键值对"的形式储存的,请看下面的实例:

#有两种方法可以创建字典,第一种直接创建一个空的字典,然后逐个添加键值
          >>> a={}
          >>> a["早餐"]="牛奶鸡蛋"
          >>> a["午餐"]="可乐牛排"
          >>> a["晚餐"]="水果沙拉"
          >>> print(a)
          {'早餐': '牛奶鸡蛋', '晚餐': '水果沙拉', '午餐': '可乐牛排'}

          #第二种方法创建字典,一次性添加所有的键值,用冒号分隔每一组元素,冒号前为"键",冒号后为"值""
          >>> a={'早餐': '牛奶鸡蛋', '晚餐': '水果沙拉', '午餐': '可乐牛排'}

          #python允许不同的键拥有相同的值,所以下面的语法是正确的
          b={"one":"qing","two":"qing"}

          #有两种方法可以读取字典中的值,直接使用"字典[键]"来读取值,或使用"字典.get(键)"来读取值
          >>> print(a["早餐"])
          牛奶鸡蛋
          >>> print(a.get("午餐"))
          可乐牛排

          #读取字典keys和values列表
          >>> print(a.keys())
          dict_keys(['早餐', '晚餐', '午餐'])
          >>> print(a.values())
          dict_values(['牛奶鸡蛋', '水果沙拉', '可乐牛排'])
0×4.数据分片实例

在python中能够通过数据分片,实现读取某段字符串中单个字符的目的,这种思想同样适用于元组和列表,如果列表中储存的为字符串,就可以通过分片技术取出某个元素的第几个字符,这种方法在某些环境中会非常实用,请看下面的实例:

#首先来看python对字符串数据的分片提取方法,本例取出a指向的字符串数据中,索引位置为2的单个字符
          >>> a="abcdefg"
          >>> print(a[2])
          c

          #在列表数据中,可以将每个字符串元素看做一个子列表,使用多维列表的思想,提取子列表中对应索引位置的值
          >>> b=["www.qingsword.com","abcdefg","12345678"]
          >>> print(b[0][4])
          q

          #提取b中索引位置为2的元素的最后一位字符
          >>> print(b[2][-1])
          8
使用字符串分片技术,将一组列表中的每个元素的首字母提取出来作为字典的键,并对应这个元素的值,下面是一段比较完整的程序:

#!/usr/bin/env python3
          #创建一个名称列表
          a=["Qingsword","John","Tom","George","Kali","Eva"]
          x=0
          #创建一个空字典
          b={}
          #当x值小于a列表元素个数时循环
          while x<len(a):
              b[a[x][0]]=a[x]
              x+=1  
          print(b) 

          #程序输出
          {'E': 'Eva', 'G': 'George', 'Q': 'Qingsword', 'K': 'Kali', 'J': 'John', 'T': 'Tom'}
除了上面介绍的简单切片技术外,python还提供了一种特殊的切片技术,分号切片,请看下面的实例:

#分号切片同样适用于字符串或元组列表,语法为"[起始索引:结束索引(不包含)]"

          #从字符串a索引为2(3)的位置开始切片,直到索引6(7)的位置,截取这其中的数据输出(包含起始索引值,不包含结束索引值)
          >>> a="123456789"
          >>> print(a[2:6])
          3456

          #从b中索引为3(d)的位置开始,直到索引为5(f)的位置
          >>> b=["a","b","c","d","e","f","g"]
          >>> print(b[3:5])
          ['d', 'e']

时间: 2024-09-04 12:55:51

Python中元组列表与字典学习笔记的相关文章

Python中Random和Math模块学习笔记

  这篇文章主要介绍了Python中Random和Math模块学习笔记,本文讲解了math模块的数学常量.常用简单函数.三角函数等,讲解了random模块的常用函数.随机挑选和排序等内容,需要的朋友可以参考下 由于最近经常使用到Python中random,math和time``datetime模块, 所以决定花时间系统的学习一下 1. math模块 math中的函数不可以用于太过复杂的数的运算, 如果需要复杂数的运行最好使用cmath模块中同名函数, 如果想要更加高级的数学功能,可以考虑选择标准

Perl中的列表和数组学习笔记_perl

一.列表 列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1, 5.3 , "hello" , 2),空列表:(). 注:只含有一个数值的列表(如:(43.2) )与该数值本身(即:43.2 )是不同的,但它们可以互相转化或赋值.列表例: 复制代码 代码如下:     (17, $var, "a string")     (17, 26 << 2)     (17, $var1 + $var2) ($value, "The an

Python中操作列表之List.append()方法的使用

  这篇文章主要介绍了在Python中操作列表之List.append()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下 append()方法追加传递obj到现有的列表. 语法 以下是append()方法的语法: ? 1 list.append(obj) 参数 obj -- 这是在列表中要追加的对象. 返回值 此方法不返回任何值,但更新现有的列表. 例子 下面的例子显示了append()方法的使用. ? 1 2 3 4 5 #!/usr/bin/python   aList

在Python中操作列表之list.extend()方法的使用

  这篇文章主要介绍了在Python中操作列表之list.extend()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下 extend()方法追加序列内容到列表. 语法 以下是extend()方法的语法: ? 1 list.extend(seq) 参数 seq -- 这是列表的元素 返回值 此方法不返回任何值,但添加内容到现有列表中 例子 下面的例子显示了extend()方法的使用 ? 1 2 3 4 5 6 7 #!/usr/bin/python   aList = [1

在Python中操作列表之List.pop()方法的使用

  这篇文章主要介绍了在Python中操作列表之List.pop()方法的使用,是Python入门中的基础知识,尤其该方法的返回值在Python编程中经常被灵活运用,需要的朋友可以参考下 pop()方法从列表移除并返回最后一个对象或obj. 语法 以下是pop()方法的语法: ? 1 list.pop(obj=list[-1]) 参数 obj -- 这是一个可选参数,该对象的索引可以从该列表中删除 返回值 此方法返回从列表中移除对象 例子 下面的例子显示了pop()方法的使用 ? 1 2 3 4

在Python中处理列表之reverse()方法的使用教程

  这篇文章主要介绍了在Python中处理列表之reverse()方法的使用教程,是Python入门中的基础知识,需要的朋友可以参考下 reverse()方法代替逆转列表对象. 语法 以下是reverse()方法的语法: ? 1 list.reverse() 参数 NA 返回值 此方法不返回任何值,但反转列表中的给定对象. 例子 下面的例子显示了reverse()方法的使用. ? 1 2 3 4 5 6 #!/usr/bin/python   aList = [136, 'xyz', 'zara

Python中实现两个字典(dict)合并的方法_python

本文实例讲述了Python中实现两个字典(dict)合并的方法,分享给大家供大家参考.具体方法如下: 现有两个字典dict如下: dict1={1:[1,11,111],2:[2,22,222]} dict2={3:[3,33,333],4:[4,44,444]} 合并两个字典得到类似: {1:[1,11,111],2:[2,22,222],3:[3,33,333],4:[4,44,444]} 方法1: dictMerged1=dict(dict1.items()+dict2.items())

Java 和 C/C++ 中的char 类型长度学习笔记

java 和 c/c++ 中的char 类型长度学习笔记 这两天在帮同学改一个加密程序.以下是c++语言的核心代码: char cpass[5]; for(int j=0;j<instring.length();j++){      cpass[j] ^= npwd;}   但是转成 java 写时会出现问题,乍一看,几乎可以原封不动的转换,可是结果却是有问题的. 经过网上资料的查找发现,是char类型的问题.实际上这就涉及到 c/c++ 中的数据类型和 java 的数据类型的比较. 先说 ch

Python数据库ORM工具sqlalchemy的学习笔记

SQLAlchemy是python的一个数据库ORM工具,提供了强大的对象模型间的转换,可以满足绝大多数数据库操作的需求,并且支持多种数据库引擎(sqlite,mysql,postgres, mongodb等),在这里记录基本用法和学习笔记. 一.安装 通过pip安装 $ pip install SQLAlchemy  二.使用 首先是连接到数据库,SQLALchemy支持多个数据库引擎,不同的数据库引擎连接字符串不一样,常用的有 mysql://username:password@hostna