基础数据类型的补充

1.基础数据类型的补充.

下面看一个例子:

s = '123'

s1 = s.join('abc')

print(s1)

运行结果如下:

  

由此可以看出join是将s的值插入s1每一项值之间.

再一个例子:

a = '***'

s1 = a.join(['a', 'b', 'c'])

print(s1)

我们会得到以下结果:

由此可见join()可以把列表变成字符串.

2.删除列表中的每一项

看到这句话我们会直接想到clear()这样我们就能直接把列表清空.

但是,我们就想用循环把列表清空,怎么办?我们来看看下面这个例子:

 li = [11, 22, 33, 44]

for e in li:
    li.remove(e)
print(li)

按照例子的原意是想通过for循环把li列表中的元素一个一个的删除.

结果程序运行之后的结果为:

 

运行完之后,我们打印的列表中还存在两个元素.

原因是什么其实不难想象,如题,按照循环运行:

第一次循环完成之后li中的元素的第[0]项.已经被删除.在运行第二次的循环之前li列表中的元素就变成一下这个样子:

li = [22, 33, 44]

li列表中的元素的索引会发生变化,所有的元素的索引会减少1,通俗的说就是后面的元素依次前进一位.而程序运行到第二次循环,这时要删除的是li的第[1]项.也就是现在33这个元素.

以此类推

得到的结果就变成

[22, 44]

结果因为索引的变化是删不干净的..那么如何能正确的通过循环把列表中的元素全部删除呢,我们来看下个例子:

li = [11, 22, 33, 44]

del_li = []

for el in li:

       del_li.append(el)

for el in del_li:

       li.remove(el)

print(li)

 

因为索引的改变,列表的元素是不能通过循环删除的,

所以,新建一个空的列表,把li列表中的要删除的元素通过循环依次存入这个新列表del_li中

我们再通过循环这个新列表找到要删除的元素,之后去原有列表li中把对应项删除.

这样得到的结果:

[]

 

3. dict中的fromkey(),可以帮我们通过list来创建一个dict

 

我们运行下面这段代码:

 

dic = dict.fromkeys(["jay", "JJ"], ["周杰伦", "麻花藤"])

print(dic)

 

结果: {'jay': ['周杰伦', '麻花藤'], 'JJ': ['周杰伦', '麻花藤']}

通过结果我们可以看出最后dic生成的是一个字典

 

二. set集合

set集合是python的一个基本数据类型. 一般不是很常用. set中的元素是不重复的.无序的.里面的元素必须是可hash的(int, str, tuple,bool), 我们可以这样来记. set就是dict类型的数据但是不保存value, 只保存key. set也用{}表示

注意:

set集合中的元素是不可变的,但是set本身是可变的.

Set集合中的元素排序是不重复的.无序的.因此,可以用set集合去除重复元素.

 

set集合增删改查

 

1.      增加

 

 

2.      删除

 

 

 

3.      修改

 

 

 

4.      查询

 

 

5. 常⽤用操作

 

 

 

set集合本身是可以发生改变的. 是不可hash的. 我们可以使用frozenset来保存数据. frozenset是不可变的. 也就是一个可哈希的数据类型.

我们可以理解为冻结的集合.

 

 

 

 

 

 


posted @ 2018-07-10 16:06  恐惧背后  阅读(92)  评论(0编辑  收藏  举报