>>> o = {1, 2, 3}
>>> type(o)
<class 'set'>
>>> o = {}
>>> type(o)
<class 'dict'>
关于字典推导式的一些案例:
'''
# 字典推导式
p = {i:str(i) for i in range(1,5)}
print("p:",p)
'''
p: {1: '1', 2: '2', 3: '3', 4: '4'}
'''
x = ['A','B','C','D']
y = ['a','b','c','d']
n = {i:j for i,j in zip(x,y)}
print("n:",n)
'''
n: {'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd'}
'''
s = {x:x.strip() for x in ('he','she','I')}
print("s:",s)
'''
s: {'he': 'he', 'she': 'she', 'I': 'I'}
'''
一般来说,函数的返回值一般为一个。
而函数返回多个值的时候,是以元组的方式返回的。
示例(命令行下):
python中的函数还可以接收可变长参数,比如以 "*" 开头的的参数名,会将所有的参数收集到一个元组上。
例如:
字典(小拓展)
python中的字典是使用了一个称为散列表(hashtable)的算法(不具体展开),
其特点就是:不管字典中有多少项,in操作符花费的时间都差不多。
如果把一个字典对象作为for的迭代对象,那么这个操作将会遍历字典的键:
针对楼上的 字典 拓展,做测试的时候,想要输出 kye:value的组合发现可以这样:
或者
于是发现 print()函数 其实可以 添加多个参数,用逗号 隔开。
本来想要用
这样的方式打印 key:value结果发现其实 key不一定是 string类型,所以 用+ 号会出问题。
在list的使用中,开始时很容易忽视的一点是:
list[1:3] 其实输出的只有两个变量,即list中第二个元素到第三个元素,并不是第1 第2 第3三个元素,而且要注意的是
这两句话打印的内容其实是一样的,
但是第二句话有中括号
其实我觉得可以这样理解:
其实我们可以试验一下:
其实中括号里的值还可以为负数:
----------------------------
list 补充:
这两句话打印的内容其实是一样的:
但注意是不同的类型,用变量接收一下:
python 与 C 语言和 Java 语言的一点不同,表现在它的变量不需要声明变量类型,这是因为像 C 语言和 Java 语言来说,它们是静态的,而 python 是动态的,变量的类型由赋予它的值来决定,例如:
第一次为变量 a 赋值为整型,第二次赋值是浮点数,第三次是一个字符串,最后输出时只保留了最后一次的赋值。
type 是用于求一个未知数据类型对象,而 isinstance 是用于判断一个对象是否是已知类型。
type 不认为子类是父类的一种类型,而isinstance会认为子类是父类的一种类型。
可以用 isinstance 判断子类对象是否继承于父类,type 不行。
综合以上几点,type 与 isinstance 虽然都与数据类型相关,但两者其实用法不同,type 主要用于判断未知数据类型,isinstance 主要用于判断 A 类是否继承于 B 类:
运行结果:
字典(小拓展)
输入 dict 的键值对,可直接用 items() 函数:
字典(小拓展)
原文说 dict(d)创建一个字典。d 必须是一个序列 (key,value)元组。
其实d不一定必须为一个序列元组,如下:
集合与字典
无序:集合是无序的,所以不支持索引;字典同样也是无序的,但由于其元素是由键(key)和值(value)两个属性组成的键值对,可以通过键(key)来进行索引
元素唯一性:集合是无重复元素的序列,会自动去除重复元素;字典因为其key唯一性,所以也不会出现相同元素
切片还可以设置步长
bool 型
Python 中布尔值使用常量 True 和 False 来表示。
1、在数值上下文环境中,True 被当作 1,False 被当作 0,例如:
2、其他类型值转换 bool 值时除了 ''、""、''''''、""""""、0、()、[]、{}、None、0.0、0L、0.0+0.0j、False 为 False 外,其他都为 True 例如:
函数的参数为多个时,不一定是以元组的形式返回的,还是要看自己定义的返回形式是什么:以上实际返回值也只有一个,一个 List 类型的参数。
一楼所说的返回值为多个是:
Bool 型小知识 :
Python3 废除了 long 类型,将 0 和 1 独立出来组成判断对错的 Bool 型,即 0 和 1 可以用来判断 flase 和 true。但是根本上并没有修改原则。这里的 Bool 型依然是 int 型的一部分,所以依然能当做数字参与运算,所以 Python3 里的 Bool 型是 int 型的一个特例而不是一个独立的类型。
注意:列表、元组、集合有所区别(新人特别容易入坑)。
列表和元组不会把相同的值合并,但是集合会把相同的合并。
关于列表的创建细节补充:
关于字典推导式的一些案例:
'''所有数据类型都是类。
也就是说,int、str等数据类型不是函数,只是一个类罢了。
用int()、str()、list()等都是初始化相应的类,那么123456、"Runoob“、[1,2,3] 等都是相应数据类型的初始化结果。
有很多人和教学网站都认为int、str、list等数据类型都是函数,但这是错误的。type(int)的输出结果表明int是一个类。