看了《Head First Python》后,觉得写的很不错,适合新手。此处为读书笔记,方便日后查看。

Python 提供了4中数据结构:list,dict,set,tuple. 每种结构都有自己的特征和用处。

1. List -- 有序的可变对象集合

  • List 的定义
prices = [] # 定义空列表
temps = [32.0, 212.0, 0.0, 81.6, 100.0, 45.3] # 存储浮点型
words = ['hello','word'] # 存储字符串
car_details = ['Toyota', 'RAV2', 2.2, 60808] # 列表中可以存储混合类型数据
everyting = [prices, temps, words, car_details] # 列表里放置列表
  • List 常用操作,以下操作直接影响list的值。
fruit=['banana','orange','strawberry']

# 打印列表中全部元素
for v in fruit:
print(v) # 判断列表中是否存在某个元素,若不存在加入到列表中。
if 'apple' not in fruit:
fruit.append('apple')
print(fruit) # 打印列表长度
print(len(fruit)) # 从列表总添加元素
fruit.append('piers')
print(fruit) # 从列表中删除某个对象值
numsRem=[1,2,3,4]
numsRem.remove(3)
print('Remove result is '+str(numsRem))
# nums -> [1,2,4] # 从列表中删除某个位置(索引值)的对象
numsPop=[1,2,3,4]
numsPop.pop() #->4
print('Pop result is '+str(numsPop))
#nums->[1,2,3] # 加入一个其他列表
nums1=[1,2]
nums2=[3,4]
nums1.extend(nums2)
print(nums1) # [1,2,3,4] # 从列表的某个位置插入指定元素值
numsIns=[2,3,4]
numsIns.insert(0,1)
print(numsIns) #[1,2,3,4]
  • List 和 String 的相互转换
given_message = "It's a known issue."
print("given message original is \'" + given_message +" \'") # convert string to list
mes_list = list(given_message)
print("List given message is " + str(mes_list)) # convert list to string
given_message_after = ''.join(mes_list)
print("After converted to string is \'" + given_message_after + " \'")
  • 从list取特定字段, 以下操作除了rename以外,其他操作都是生成一个副本,不会改变原list的值。
list1=[1,2,3,4,5,6]
print ("list1 is "+ str(list1)) # It will give a alise for list1, but not copy of it. So if one of them is changed, the other one will be changed also.
list1_rename = list1
print ("list1_rename is " + str(list1_rename)) list1_rename[0]=9
print("After list1_rename[0]=9, list1_rename is " + str(list1_rename))
print("After list1_rename[0]=9, list1 is " + str(list1)) # Copy a list, so if one of it has been changed, the other will not be changed.
list1_copy = list1.copy()
print("list1_copy is " + str(list1_copy)) list1_copy[0]= 8
print("After list1_copy[0]= 8, list1_copy is " + str(list1_copy))
print("After list1_copy[0]= 8, list1 is " + str(list1)) # Get value by index
print("list 1 is " + str(list1)) print("first value is " + str(list1[0]))
print("last value is " + str(list1[-1])) #navigate index get the value from the end.
print("Value for every 3 index is " + str(list1[0:5:3]))
print("Value from index 3 is " + str(list1[3:]))
print("Value until index 4 is " + str(list1[:4]))
print("value all for every 2 index is " + str(list1[::2])) # get back ward value
print("Backward value for list1 is " + str(list1[::-1]))
print("Backward value for target range is " + str(list1[4:1:-1]))

2. Dict:

Dict -- 无序的键/值对集合

  • Dict的定义
dict1 = {}
dict_person = {'Name':'Steven','Gender':'Male','Occupation':'Researcher','Home Planet':'Betelgeuse Seven'} print("dict1 is "+ str(dict1))
print("dict_person" + str(dict_person))
  • Dict的常用操作
dict_person = {'Name':'Steven','Gender':'Male','Occupation':'Researcher','Home Planet':'Betelgeuse Seven'} 

# Get value by index
print("dict_person's name is " + str(dict_person['Name'])) # Add an key and value
dict_person['Age']= 33
print("After dict_person['Age']= 33, dict_person's new:value is " + str(dict_person)) # 遍历dict中的所有key
for k in dict_person:
print(k) # 遍历dict中的所有value
for k in dict_person:
print(dict_person[k]) # 遍历dict中的所有值
for k in dict_person:
print(k +":" + str(dict_person[k]) + "\t") # 遍历dict中的所有值
for k,v in dict_person.items():
print(k +":" + str(dict_person[k]) + "\t") # 遍历dict中的所有值(按顺序显示)
for k,v in sorted(dict_person.items()):
print(k +":" + str(dict_person[k]) + "\t") # 用字典记录频度, 输出给定字符串中元音出现的次数
count_for_string = 'Hello, hello, how are you'
vowels = ['a','e','i','o','u']
found ={}
for k in count_for_string:
if k in vowels:
found.setdefault(k,0)
found[k] +=1
  • 字典的嵌套(也就是表)
from pprint  import pprint 

person={}

person['Mother']={'Name':'Luky','Age':'','Sex':'Female'}
person['Father']={'Name':'Alex','Age':'','Sex':'Male'}
person['Son1']={'Name':'Ethan','Age':'','Sex':'Male'}
person['Son2']={'Name':'Ringo','Age':'','Sex':'Female'} # 显示整张嵌套列表
for k,v in sorted(person.items()):
print(str(k) + ':' + str(v)) for k,v in sorted(person.items()):
pprint(str(k) + ':' + str(v)) # 显示嵌套列表的某个值
print(person['Mother']['Age'])

3. Set

Set -- 无序的唯一对象集合(不允许有重复,可以用于去重)

  • Set 的定义:
# 定义空字符串
set_a=()
print(set_a) # 从列表创建集合
set_volew=set('aaioeuu')
print(set_volew)
  • Set的常用:
# 并集
volews=set('aeiou')
world="Hello,Apple"
union_letters=volews.union(set(world))
print(union_letters) # 差集(A-B),这里是volews letter - world letter
diff_letters=volews.difference(set(world))
print(diff_letters) # 交集
inst_letters=volews.intersection(set(world))
print(inst_letters)

4. Tuple

Tuple-- 有序的不可变对象集合,其实也是一个一旦创建(并填充数据)就不能改变的列表,这样性能更好。

  • 元组的定义
# 元组的定义
vowels_tuple=('a','e','i','o','u')
print(vowels_tuple)
  • 元组常用操作
# 给元组更新值会报错,因为元组值是不能变的。
# 如vowels_tuple[2]='A' 会报TypeError: 'tuple' object does not support item assignment # 显示某个元素
print(vowels_tuple[0]) # 只有一个对象的元组赋值一定要加','号,否则不会被视为元组.
tuple=('python')
print(type(tuple)) # <class 'str'> tuple2=('python',)
print(type(tuple2)) # <class 'tuple'>

欢迎转载,如需转载请注明出处。

Python 3 -- 数据结构(list, dict, set,tuple )的更多相关文章

  1. Python中内置数据类型list,tuple,dict,set的区别和用法

    Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...

  2. Python:Base2(List和Tuple类型, 条件判断和循环,Dict和Set类型)

    1.Python创建list: Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: &g ...

  3. (python数据分析)第03章 Python的数据结构、函数和文件

    本章讨论Python的内置功能,这些功能本书会用到很多.虽然扩展库,比如pandas和Numpy,使处理大数据集很方便,但它们是和Python的内置数据处理工具一同使用的. 我们会从Python最基础 ...

  4. python的数据结构分类,以及数字的处理函数,类型判断

    python的数据结构分类: 数值型 int:python3中都是长整形,没有大小限制,受限内存区域的大小 float:只有双精度型 complex:实数和虚数部分都是浮点型,1+1.2J bool: ...

  5. Python 基本数据结构

    Python基本数据结构 数据结构:通俗点儿说,就是存储数据的容器.这里主要介绍Python的4种基本数据结构:列表.元组.字典.集合: 格式如下: 列表:list = [val1, val2, va ...

  6. Python高级数据结构-Collections模块

    在Python数据类型方法精心整理,不必死记硬背,看看源码一切都有了之中,认识了python基本的数据类型和数据结构,现在认识一个高级的:Collections 这个模块对上面的数据结构做了封装,增加 ...

  7. 05-深入python的set和dict

    一.深入python的set和dict 1.1.dict的abc继承关系 from collections.abc import Mapping,MutableMapping #dict属于mappi ...

  8. Python原生数据结构增强模块collections

    collections简介 python提供了4种基本的数据结构:list.tuple.dict.set.基本数据结构完全可以hold住所有的场景,但是在处理数据结构复杂的场景时,这4种数据结构有时会 ...

  9. 『Python基础-9』元祖 (tuple)

    『Python基础-9』元祖 (tuple) 目录: 元祖的基本概念 创建元祖 将列表转化为元组 查询元组 更新元组 删除元组 1. 元祖的基本概念 元祖可以理解为,不可变的列表 元祖使用小括号括起所 ...

随机推荐

  1. 打开对话框opendialog

    //使用:OpenDialog控件.    ldg.Options := ldg.Options + [ofAllowMultiSelect];  ldg.Filter := '作答文件ZF包.zf| ...

  2. jquery中$.get()提交和$.post()提交的区别

    相同点:都是异步请求的方式来获取服务器端的数据: 异同点: 1.请求方式不同:$.get()方法使用 GET 方法来进行异步请求的:$.post()方法使用POST方法来进行异步请求的: 2.参数传递 ...

  3. 异步fifo的Verilog实现

     一.分析 由于是异步FIFO的设计,读写时钟不一样,在产生读空信号和写满信号时,会涉及到跨时钟域的问题,如何解决? 跨时钟域的问题:由于读指针是属于读时钟域的,写指针是属于写时钟域的,而异步FIFO ...

  4. shell脚本循环和信号

    条件判断 if     条件1:then COMMAND elif  条件2:then COMMAND else COMMAND(:)        :  表示pass  不执行任何命令 fi 读取用 ...

  5. 每周工作4小时,蒂莫西·费里斯 最理想的工作方式和生活方式,QQ群666243547

    内容简介  · · · · · · <每周工作4小时>是一本从观念到行为,彻底改变你的工作方式和生活方式的书.它既是数字时代的职场励志书和创业指导书,也是新新人类的全球化生存手册和人生哲学 ...

  6. 反射入门-浅谈反射用途_根据Ado游标对象创建list集合

    本人大二菜鸟一只,今天在上课期间有个同学看着C#反射的内容说反射没什么用,一时之间也想不到什么更好的例子,就写了个根据泛型类型和游标反射创建List集合的Demo. 首先创建一个用于封装对应数据的en ...

  7. 创建genil component

    1: 创建一个类继承 CL_WCF_GENIL_ABSTR_COMPONENT 2:创建 genil _ editor 创建 component, 填入该实现类. 3: genil component ...

  8. 基于Apache Spark机器学习的客户流失预测

    流失预测是个重要的业务,通过预测哪些客户可能取消对服务的订阅来最大限度地减少客户流失.虽然最初在电信行业使用,但它已经成为银行,互联网服务提供商,保险公司和其他垂直行业的通用业务. 预测过程是大规模数 ...

  9. 【Linux】-NO.7.Linux.3.Maven.1.001-【CentOS 7 Install Maven 3.5】-

    1.0.0 Summary Tittle:[Linux]-NO.7.Linux.3.Maven.1.001-[CentOS 7 Install Maven 3.5]- Style:Linux Seri ...

  10. git revert 撤销merge的动作

    在执行完git merge提交以后,通常会merge过的分支的提交记录都带过来,比如A分支merge到了B分支,那么B分支上肯定有A分支的提交记录,如果此时要回退这个merge动作,是产生一条reve ...