- Python数据分析实战:从Excel轻松入门Pandas
- 曾贤志编著
- 1544字
- 2023-08-10 16:22:59
1.2.4 数据结构
Python中常用的数据结构有6种:数字、字符串、列表、元组、集合和字典。其中使用频率较高的是数字、字符串、列表和字典。
1.数字
数字(number)有4种类型,分别为int(整数)、float(小数)、complex(复数)和bool(布尔值)。其中bool只有True和False两种值,True和False本质是数字1和0,可以使用type()函数查询类型,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P17_14412.jpg?sign=1739227258-H0P2Y3VuirydZcPQh55MI0Bb1JsaQ6m4-0-a7f01119ac9c8b0860e9694e51fe4dee)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P17_14413.jpg?sign=1739227258-nWXsEOwuqPq0mCxxx1bsnR3dbg5edIX5-0-f97efcceb6954045e489dc057db09222)
2.字符串
字符串(string)的组成内容可以是数字、字母、汉字和符号等任何可以在计算机上表示出来的一串字符。字符串放置在一对单引号(')或双引号(")中,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P17_14414.jpg?sign=1739227258-trrCLsScifg6YNQcqsnYebmAFIwNa0zJ-0-6e36b02dd27f33cd864d45c1f73c5a24)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P18_14462.jpg?sign=1739227258-uEAEb59ggv8YY13lA1C70h5N6HpDYAy4-0-162e588b91a78dd78134b5ee18840317)
注意:在表示字符串时,最好统一使用一种字符串表示方式,本书均采用单引号的方式来引用字符串。如果字符串中有特殊字符,但希望具有普通意义,而不具有特殊意义,就需要在字符串左侧加r。例如'\n'将被视为换行符,而r'\n'将被视为\后跟的字符n。
要获取字符串中的某部分字符串,可以通过切片方式来截取。在对字符串切片时默认的起始位置为0。下面罗列了几种基本的切片方式,用户可以根据这些切片原则衍生出更多的切片方法,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P18_14463.jpg?sign=1739227258-2TThZHKI6IGxHKNMiOeSEGdKC24i8Xf2-0-7973896d16d546d52660d8a76efb1a99)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P18_14464.jpg?sign=1739227258-te0IMXPLWBwWOvkvBVFVApRlYhrTcGrO-0-453ba93d1d5b0fdfc56e9c4c206f311b)
3.列表
列表(list)可有序地存储一组数据元素。数据元素置于一对中括号之间,元素之间用英文半角逗号分隔,如[1,2,3]。列表中的元素可以是任何数据类型,并且可以对列表进行修改,下面讲解常用操作。
1)列表的添加
使用append()函数向列表末尾添加单个元素,也可以使用extend()函数向列表末尾添加多个元素,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P18_14465.jpg?sign=1739227258-20kF6MCcPKXfDdoPSWvQ9z5E8Pvkcq8M-0-a9991b4812d53b0dae410092abd9278c)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14517.jpg?sign=1739227258-MsFogwB7XiQrSQVtFSaCdnrsJy5jzyjC-0-488850879d361aacc9727874720f6c50)
2)列表的删除
使用pop()函数删除列表中指定下标对应的元素,也可以使用remove()函数删除列表中指定名称的元素,如果列表中有多个相同名称的元素,则只删除第1个,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14518.jpg?sign=1739227258-BAqVBw21ZByfKvfdgtipiP9TKfXYRGLo-0-1d793345eec529e1c13904b3d362d699)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14519.jpg?sign=1739227258-YukqvPb8oCuY1O7nbLizzq5pNexS8lEM-0-9153744d77a0bbc08a11ff97c6d53391)
3)列表的切片
列表的切片与字符串的切片方式一样,通过指定列表的下标完成切片操作,下面罗列了常见的列表切片方式,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14520.jpg?sign=1739227258-zH4lou9kjeM60p4cccTGnpgwlisaj5X2-0-0a72b971fb5a0b477249a0dcd4f02883)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P19_14521.jpg?sign=1739227258-PvdjcTpkWs6OAuaznLaGB76oXDDfbLlO-0-ad788cb29fe58ae2004914dfbfdc27f9)
注意:如果列表切片的结果只有1个元素,则显示为标量值;如果切片的结果有多个元素,则显示为列表。
4)列表的修改
要修改列表中的元素,必须先用切片的方法获取要修改的元素,然后将修改的数据赋值给切片结果。可以修改单个元素,也可以修改连续的多个元素,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P20_14558.jpg?sign=1739227258-tA9ycyagFmnmDeL9jdrExjOlqYCWm5Nc-0-80e219210514ee8ec15f7436165e4a47)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P20_14559.jpg?sign=1739227258-o5COylNRFcnG5mxv2TH4xDv4O2xn9zQm-0-6d6dc97cdf01f79ee6485b88a4d28075)
注意:如果切片结果是标量值,则提供修改的数据就是标量值;如果切片结果是列表,则提供修改的数据就是列表。
4.元组
元组(tuple)可有序地存储一组数据元素。数据元素置于一对圆括号之间,元素之间用英文半角逗号分隔,如(1,2,3)。元组中的元素可以是任何数据类型。不能对元组中的元素做修改,只能做切片设置,下面列出了元组常见的切片方法,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P20_14560.jpg?sign=1739227258-gFkLZyIRYqsLnWxFMhT7xOxMKVT8jL4L-0-7879df0c383bbb0a9ef6618f3350f59c)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P20_14561.jpg?sign=1739227258-5IhK15PNqdGJSXYmWgQaVxfmhRruuhvN-0-e579954d58291901392a856376db5a91)
注意:如果元组中只有1个元素,则需要在这个元素的后面加上逗号。例如数字100,正确的表示方法为(100,),表示为(100)是错误的。
5.集合
集合(set)是由唯一元素组成的无序集。数据元素置于一对花括号之间,元素之间用英文半角逗号分隔,如{1,2,3}。集合里的每个元素必须保持唯一性,如果集合中的元素有重复,则在输出时会自动去做重复处理,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14613.jpg?sign=1739227258-60uz6zRYEKxZTILRZ8fnk9apg1hSf508-0-8160af6a8c588db4b619fd4122e9ab7f)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14614.jpg?sign=1739227258-IV5IbXhdrs0Nf2PXKtosy44RtBe04SCE-0-a1a48c37fd3196315d03bb1655ef9f94)
注意:集合是无序集的,即集合中元素的位置无法固定,所以不能像列表、元组一样做切片。
6.字典
字典(dict)是最重要的数据类型之一。每个元素由键值对组成,键与值之间用半角冒号分隔,键在字典中必须保持唯一性,值可以有重复。元素置于花括号中,元素之间用逗号分隔,如{'梨子':99,'苹果':95,'橙子':91}。
获取键对应的值,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14615.jpg?sign=1739227258-qO9fK6LqNHgd1OopgLHPSqMBhinZTT4l-0-1f35abcc8bbc799b8f34f725583681d6)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14616.jpg?sign=1739227258-NFhIa9ZoqMNim7GpZaMuy9phTX8vznqA-0-27eb3f72b3e7df94822f2af3f491c37a)
修改键对应的值,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14617.jpg?sign=1739227258-wXawsjZRPMMTTgJmtXKWvhQZkq2Q6IhW-0-6bc42fab6989ad0b3005ed9f48729203)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P21_14618.jpg?sign=1739227258-16tY4UzBrMoF7F6RQPGV2HFC4nmPF7Bi-0-568339016d40851619de3eaefd388e12)
要获取字典的键和值的相关信息,有以下3种常用操作。
(1)获取字典中所有的键用keys()方法。
(2)获取字典中所有键对应的值用values()方法。
(3)获取字典中所有的键值对用items()方法。
示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P22_14655.jpg?sign=1739227258-o8Uy42s0KhwhSks61rHDXzMZwbtXMcG6-0-9f9c86efe254e8cef2efbf07db533e04)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P22_14656.jpg?sign=1739227258-jnaIksGzN3SfGYavO6lbwpWdj1PXixVV-0-efee6aa24f428a5dedee670430d648c9)