Python 的Lists、Tuples、Dictionaries和Sets_list argument must consist only of tuples or dicti-程序员宅基地

技术标签: python  学习笔记  

Lists和Tuples

相同点:

  • 都可以按顺序存储元素;
  • 可以存储不同类型的元素,即一个List中可以存储任何Python的对象;

不同点:

  • Lists的元素可以改变,Tuples中的元素不可以;
  • Tuples占的空间小

Lists

创建

  • 使用 [] 或者 list()
    a_list = [] 
    a_list = list()
    a_list = [a, b, c, d]
  • 使用 list() 从其它类型得到一个list
    list_from_string = list("fromstring")
    some_tuple = "good", "better", "best"
    list_from_tuple = list(some_tuple)

访问数据

  • 使用[offset]访问元素,offset从0开始计算为第一个元素,-1为最后一个元素
a_week = ["Monday","Tuseday","Wednesday","Thursday","Friday"]
  • 访问第一个元素和最后一个元素
a_week[0]
a_week[-1]
  • 使用 slice[begin:end:steps]访问从bigin 到 end -1中间隔为steps的元素,默认begin为0,end为最后元素的offset,steps为1
first_three_days = a_week[0:3:1]
last_three_days = a_week[-1:-4:-1]

添加元素

  • 使用append()或者+=在List末尾添加元素,注意append()把添加的元素当成一个整体,而+=则是将能分开的结构分开加入,如下代码实际上a_week+=("Sunday")添加了六个元素而并非”Sunday”这个元素
a_week.append("Saturday")
a_week+=("Sunday")
  • 使用 insert(offset, element),在offset位置添加元素element
a_week.insert(5,"Saturday"

删除元素

  • 使用 del,del并非是List 的方法,而是相当于 = 的反向操作
del a_week[5]
del a_week[-1:-5:-1]#删除后四个元素
  • 使用Lists方法 remove(value) value为元素的具体值
a_week.remove("Monday")#删除"Monday"
  • 使用 pop(offset) 删除offset上的元素,并获得该元素,offset默认为-1
a_day = a_week.pop(5)#取第六个元素并从List中删除

其它常用List操作

List自带方法
  • index(value) :返回具体元素的offset
  • count(value) :返回具体元素的的出现次数
  • sort() :对List按顺序重排,数字默认从小到大,字母则按字母表顺序,可使用reverse=ture参数改变排列顺序
  • sorted() :返回一个重排后的List,不改变原先的List
  • copy() :将List内容复制到新的List中,而 = 只是为List起新的名字,实际上都是同一个List
new_week = a_week.copy()#new_week为一个新的List
new_name_to_list = a_week #没有创建新的List,只是多了个名字
通用方法
  • len() :获得List 的长度
  • in :判断object是否在List中
if "Monday" in a_week:
    print("new week starts!")

Tuples

创建

  • 使用()
empty_tuple = ()#创建一个空Tuple
weird_names = "Tony","Cindy","Apple","Passion","LOL"#创建非空Tuple的时候()不是必须的
  • 使用 tuple() 从其他类型得到
char_tuple = tuple("Fuji")
days_tuple = tuple(a_week)

List和Tuple的unpacking:一次性使用多个元素

a,b,c,d = char_tuple #将Tuple中四个元素分别赋值个四个变量
first,second,third,fourth = a_week[:4:1]#将前四个元素赋值给四个变量

Dictionaries

Dictionary是类似于List,但是Dictionary不用offset访问,而是用唯一的key访问对应的value,它的元素是key-value的一对值,key必须是不可变的Python对象,如boolean,integer,string,Tuple等。

创建

  • 使用 {}
empty_dict = {}#创建一个空Dictionary
e2c_dict = {
     "love":"爱","you":"你"}
  • 使用 dict() 从其他类型创建Dictionary
couple = [["Mike","Amy"],["Tony","Lisa"]]
couple_dict = dict(couple)

添加元素

  • 使用 [key] 对元素进行操作
couple["Henry"] = "Christina"#添加元素 "Henry":"Christina"
couple["Mike"] = "Sucy" #改变元素值
  • 使用 update() 将其它Dictionary合并
other_cp = ["William":"Tylor","Tom":"Lily"]
couple.update(other_cp) #将other_cp中的元素加入到couple中

删除元素

  • 使用 del 删除某个元素
del couple["Mike"]
  • 使用 clear() 删除全部元素
other_cp.clear()

其它常用Dictionary操作

Dictionary的方法

  • keys() :获得Dictionary中所有的key
  • values() :获得Dictionary中所有的value
  • items() : 获得Dictionary中所有的元素
list(couple.keys())
list(couple.values())
list(couple.items())
#在Python3中上面三个方法返回的都不是List,而分别是#dict_keys(),dict_values(),dict_items(),
#需要用List()函数,转换成List
  • copy() :和List的copy() 一样,实际上复制Dictionary中的元素而不是简单的换个名字

通用方法

  • in :判断一个key是否在一个Dictionary中

Sets

Sets也就是数学中的集合,它的元素具有唯一性和Dictionary中的key一样,即Sets中不会有重复的元素

创建

  • 使用 set()
empty_set = set()#creat an empty set
char_set = set("passion")
#creat a set from a string#which only has one 's' though it appears twice in"passion"
  • 使用 {} 创建非空的set
fruits = {
    'apple','banana','pear','watermelon'}

set的基本操作

  • 求交集:&或者intersection()
others = {
   'apples','grape','lemon'}
fruits_in_common = others & fruits
fruits_in_common = othters.intersection(fruits)
  • 求合集:| 或者union()
total_fruits = others | fruits
total_fruits = others.union(fruits)
  • 求差集,即在集合a中而不再集合b中:- 或者difference()
fruits - others
fruits.difference(others)
  • 求对称差,即两集合的非公共部分:^ 或者 symmetric_diffrence()
others^fruits
others.symmetric_difference(fruits)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010516151/article/details/77888178

智能推荐

date的before方法_Java Date before()方法与示例-程序员宅基地

文章浏览阅读1.7w次。date的before方法 日期类before()方法 (Date Class before() method)before() method is available in java.util package. before()方法在java.util包中可用。 before() method is used to check whether this date is before the g..._java date before

HTML5+CSS3小结_css text break-程序员宅基地

文章浏览阅读444次。【【【【【【【【【【【【【【【【【【【【【【【HTML5】】】】】】】】】】】】】】】】】】】】】】】】】】】】】-------------------------------------------------------------------------------------------------------------不允许写的结束符的标签:area、basebr、col、co_css text break

逻辑回归python实现_python 逻辑回归-程序员宅基地

文章浏览阅读4.1w次,点赞15次,收藏147次。1.问题使用线性回归怎么解决分类问题?这就是逻辑回归要做的事情,并且逻辑回归可以计算出概率2.模型以及求解(线性)给出一组m个样本数据,每个样本数据有n个特征,并且带有标记0或者1,代表属于哪一类,为了把输入的参数代入到预测函数后始终是一个0到1之间的数,这样我们可以把0,1看做两个类别, 引入sigmod函数 1/(1+e^-t) 这个函数的函数值始终是在0到1之间让s..._python 逻辑回归

TS解扰速率计算公式备忘_lc ts 解扰-程序员宅基地

文章浏览阅读1.7k次。 今天经理想了解解扰速率的计算方式,自己用笔在草纸上划了半天才回忆起来。把推导的过程记录下来,做为备忘。 解扰器的输入时钟一共2个,分别为27MHz的TS_IOCLK和81MHz的TS_DCLK。前者是解扰器接收TS输入的时钟,每一个有效的时钟周期接收一个字节的数据;后者是解扰器对TS数据进行解扰的时钟,之所以取值81MHz是因为在实现过程中要使用FPGA的PLL倍频获得较高速的解扰时钟,故选用27MHz*3。 为了满足45Mbps的解扰速率,要计算一下_lc ts 解扰

AIX5.3安装ssh _ssh for aix5.3-程序员宅基地

文章浏览阅读826次。AIX5.3安装ssh 我实在不能理解为何aix竟然不把ssh作为缺省配置的软件,还要自己独立安装,而且ibm的网站竟然还不提供相关软件(需要到sourceforge.net/projects/openssh-aix下载)。 好在安装倒也不是难事。1、下载 需要如下四个包(我的版本是下面文件) _ssh for aix5.3

FCSC 2020 CTF 代码混淆逆向题 Keykoolol 的 writeup_xn--%20%20%20%20%20%20%20%20%20mc-c%20-cccc-c-%20c-程序员宅基地

文章浏览阅读1.1k次。通过基于虚拟机的混淆保护了keygenme,这是一种基于Miasm动态符号执行(DSE)的解决方案,可自动反汇编VM字节码。几周前,我参加了法国网络安全挑战赛(简称FCSC)。由法国国家网络安全局(ANSSI)组建的Jeopardy CTF,以选择将在2020年底参加欧洲网络安全挑战赛(ECSC)的法国团队。在提出的挑战(加密,反向,pwn,网络,取证,硬件)中,我真的很喜欢做一个名为keykoolol的反向追踪。挑战的目的是分析一个以用户名和序列作为输入的二进制文件,并为其编写一个密钥。然后,_xn--%20%20%20%20%20%20%20%20%20mc-c%20-cccc-c-%20c%20ccf%20cccoolollllll

随便推点

无法同步谷歌日历_安卓手机的日历App之选择、使用(附记:纪念日App)-程序员宅基地

文章浏览阅读1.8k次。=======友好提醒=======★本文为不负责任的自我主观测评,仅代表本人颜控日常需求。★本文涉及的ios系统(兼)App,不代表本人的ios日历App择用。★本文涉及的App排序不代表排名,但个人喜好突出。★本文所用的App无下载链接,均来自于自带手机的应用市场。★本文涉及的App多、内容多、图片多(极力缩减合并同类项了),无流量的,请慎看。★本文涉及的vivo手机和App仅代表本...

学习Python和机器学习的几个不错网址_学习python的网站-程序员宅基地

文章浏览阅读5.8k次,点赞6次,收藏32次。为了理解和应用机器学习技术,你需要学习 Python 或者 R。这两者都是与 C、Java、PHP 相类似的编程语言。但是,因为 Python 与 R 都比较年轻,而且更加“远离”CPU,所以它们显得简单一些。相对于R 只用于处理数据,使用例如机器学习、统计算法和漂亮的绘图分析数据, Pthon 的优势在于它适用于许多其他的问题。因为 Python 拥有更广阔的分布(使用 Jango 托管网站,自_学习python的网站

Dataset和DataLoader;pytorch-lightning、pytorch训练代码大概流程_dataset pytorch lightning-程序员宅基地

文章浏览阅读3.3k次。1、Dataset和DataLoader1)Dataset类,构建数据,需要重写__len__和__getitem__这两个函数2)DataLoader,迭代器,加载Dataset数据把分batch用作模型输入import torchimport torch.utils.data.dataset as Dataset#引入DataLoader:import torch.utils.data.dataloader as DataLoaderimport numpy as np Data = _dataset pytorch lightning

[蓝桥] 算法训练 P0505-程序员宅基地

文章浏览阅读155次。时间限制:1.0s 内存限制:256.0MB  一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是非常困难的。幸运的是,在本题中,我们的任务不是去计算n!,而是去计算n!最右边的那个非0的数字是多少。例如,5!=12345..._castles蓝桥

Jenkins:Linux下安装部署步骤-程序员宅基地

文章浏览阅读909次。Jenkins:Linux下安装部署步骤 【转载:https://www.cnblogs.com/code-juggler/p/9177805.html】1. 准备环境  首先,需要jdk是必须要安装好的。本人使用的linux是centos,直接使用yum安..._shutting down jenkins [failed] starting jenkins running from: /usr/share/jav

HDU 2620 Ice Rain 余数的性质_ice rain------i was waiting for a girl, or waiting-程序员宅基地

文章浏览阅读149次。Problem DescriptionIce Rain------I was waiting for a girl, or waiting for been addicted to the bitter sea. Love for irrigation in silence. No one considered whether the flowers came out or wither. L..._ice rain------i was waiting for a girl, or waiting for been addicted to the