python语言程序设计(一):基础语法(4)

python语言程序设计(一):基础语法(4),第1张

概述基础语法(4)一、集合:1.1、什么是集合:参考集合的数学概念:集合是一个具有"无序性"、“确定性”、"互异性"的数据总体。由此我们就可以看出集合的性质:无序、互异,也就是说,在集合中的元素可以类型互不相同,顺序也是无序(在集合中的元素不是数字类型的时候),并且一个集合中不会出现两 基础语法(4) 一、集合:1.1、什么是集合:

参考集合的数学概念:
集合是一个具有"无序性"、“确定性”、"互异性"的数据总体。
由此我们就可以看出集合的性质:无序、互异,也就是说,在集合中的元素可以类型互不相同,顺序也是无序(在集合中的元素不是数字类型的时候),并且一个集合中不会出现两个相同的元素。这就是集合的特性!

1.2、集合的实例化方式:第一种方式:以{}(大括号)的方式创建:

比如这个实例:

Set = {'a', 'd', 'e', 'c', 'g'}print(Set)

看到效果,我们可以发现,这不光是无序,而且每次出现的次数还是随机的:



上面就是两次输出的集合Set内容。

第二种方式:set(List/tuple/set/string)的方式实例化集合:

需要注意的是:如果是初始化空集合,必须用这种方式实例化,目的是避免和字典类型初始化空字典相矛盾。如果一定要使用{}的方式创建集合,那只会创建出空字典,如下:


然后如果用set()的面向对象的构造方式实例化set对象,那么它会把集合种的元素合并成.
实例展示:

Set1 = set({'abc', 'c'})print(Set1)Set2 = set(('a', 1, 2))print((Set2))Set3 = set(['1', 1, '2', 2])print((Set3))

执行结果如下:


从代码实验很明显可以看出,这个set()方法啊,其实就可以理解为一种强制类型转换,把其他的类型转换成集合类型,但是还有另外一种常用的:set(string),如下:

s = set("aaabbbcc")print(s)

结果如下:

1.2、集合之间的运算:关系运算集合的交:c = a & b集合的并:c = a | b集合的差:c = a - b集合的对称差:c = a ^ b

*** 作实例如下:

1.3、集合的内置方法:1.3.1、往集合中添加元素:add()方法与update()方法
s = set()print(s)s.add("hello")print(s)s.update("world")print(s)s.update([1, 2])print(s)

执行结果如下:

说明:第一点:

用 {} 的方式创建集合,输出的空集合是字典,而真正的输出空集合应该如上面的那样:set()

第二点:

add()方法是直接把add括号内的对象,作为集合中的一个元素加入集合的;而update()方法则是把update括号内的对象,作为一个集合加入集合的,什么叫作为集合加入集合呢?我们可以把update看作两部分:第一部分是把update括号内的对象实例化成一个新的集合:NewSet = set(“对象”),然后我们知道,这样实例化的集合会把对象的每一个字符单独抽出来组成集合,然后进行第二部分:s.add(NewSet),这样就相当于对s和NewSet做了并运算!于是就有了上面的结果。

第三点:

update括号内的对象类型可以不是基本数据类型,可以是元组、列表、甚至是集合,字符串。因为它们会像我上一个点说的那样,有两步 *** 作,然后强制类型转换成集合类型,然后做集合的并运算!

1.3.2、移除集合中的元素:remove()方法与discard()方法remove(x):如果x不存在则会返回一个异常

如果我们的程序需要捕捉异常并且处理异常,请用remove()方法!

discard(x):不管x在集合中是否存在,都不会返回异常

如果我们的程序不需要异常处理,那么就用discard()方法

做一个小小的实例:

s = set("123456789")print(s)s.remove('3')print(s)# s.remove('12')# print(s)s.discard('12')

上述代码大家可以自行实验,可以发现如果把我的注释去掉,就会报错:keyerror

1.4、求出集合的规模:len(Set)1.5、清空集合:Set.clear()1.6、判断某个元素是否在集合中:x in Set1.7、判断集合之间的包含关系:Set1 <= Set21.8、专门想说说集合的无序和有序特点:对整数有序

一般来说,我们说集合是无序的,但是对于每一种情况都是无序的吗?意思就是说,如果创建集合的时候,集合的每一个元素都是整数,则这个集合会保持有序的性质。

二、列表:2.1、关于列表:


没什么好说的,是序列类型最常见的一种,大多数的 *** 作都和字符串一样,因为字符串本身和列表是很相似的(在C/C++中,数组可以比作列表,字符数组可以比作字符串)。但是和数组不一样的是,列表内的元素类型可以互不相同,而同一个数组的元素类型必须相同且有限制,哪怕C++的容器vector向量出现,也必须保证向量的元素类型相同!而python则没有这个要求!

2.2、补充一些列表常用方法:2.2.1、删除列表中的元素:del 关键字
ls = ['abc', 'b', 'cd']del ls[1]print(ls)lt = [1, 2, 3, 4, 5]del lt[1: 2]print(lt)

执行结果如下:

2.2.2、在列表最末尾添加元素:append()方法
lt = [1, 2, 3, 4, 5]lt.append("hello")print(lt)

输出:[1, 2, 3, 4, 5, “hello”]

2.2.3、向列表某个位置添加元素:insert(index, x)方法
lt = [1, 2, 3, 4, 5]lt.insert(2, "hello")print(lt)

输出:[1, 2, “hello”, 3, 4, 5]

总的来说,大概就是这些方法:


代码也比较简单,我觉得比较有用的,就是insert(index, x)、append(x)、index(x)、remove(x)、pop(index = -1)、这些比较常用!

三、元组

元组和列表的区别,就是元组是静态的,一旦发生变化,只可能重新开辟新的元组空间,赋予新的值给新的元组

四、字典4.1、什么是字典:


没什么好说的,就是c++里的map,是一种映射(键值对方式),然后映射嘛,遵循数学定义,一个x不能对应两个y,也就是一个键不能对应两个值,所以说键是唯一的,而一个值可以对应多个键,所以说是值不一定。然后如果想打造一一对应关系呢?那就打造两个键值对相互映射,也就是两个字典!

4.2、字典的常用 *** 作:4.2.1、访问、创建、修改、删除字典的内容:

直接对索引指向的字典元素进行处理!

4.2.2、遍历字典:
d = dict()d['a'] = 1; d['b'] = 2; d['c'] = 3; d['d'] = 4for key in d:    if d[key] % 2 == 0:        print(key, d[key])

这里比较重要的一个点就是遍历键集合、因为我们的字典是键值对形式的,所以只要能够遍历键集合,那么就能遍历字典内容!
输出:
b 2
d 4

上述内容结束,我们的面向过程的python语言程序设计基本上就学完了! 总结

以上是内存溢出为你收集整理的python语言程序设计(一):基础语法(4)全部内容,希望文章能够帮你解决python语言程序设计(一):基础语法(4)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1185030.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存