[ 列表]

列表(list)是Python以及其他语言中最常用到的数据结构之一。Python使用使用中括号 [ ] 来解析列表。

列表是可变的(mutable)——即:可以改变列表的内容。

相关操作:

1 查([])

  1. names_class2=['张三','李四','王五','赵六']
  2.  
  3. # print(names_class2[2])
  4. # print(names_class2[0:3])
  5. # print(names_class2[0:7])
  6. # print(names_class2[-1])
  7. # print(names_class2[2:3])
  8. # print(names_class2[0:3:1])
  9. # print(names_class2[3:0:-1])
  10. # print(names_class2[:]) 

2 增(append,insert)

insert 方法用于将对象插入到列表中,而append方法则用于在列表末尾追加新的对象

  1. names_class2.append('jesson')
  2. names_class2.insert(2,'pitter')
  3. print(names_class2)

 3 改(重新赋值)

  1. names_class2=['张三','李四','王五','赵六']
  2.  
  3. names_class2[3]='赵七'
  4. names_class2[0:2]=['jesson','pitter']
  5. print(names_class2)

4 删(remove,del,pop)

  1. names_class2.remove('jesson')
  2. del names_class2[0]
  3. del names_class2
  4. names_class2.pop()#注意,pop有返回值 

5 其他操作

5.1  count

count 方法统计某个元素在列表中出现的次数:

  1. >>> ['to', 'be', 'or', 'not', 'to', 'be'].count('to')
  2. 2
  3. >>> x = [[1,2], 1, 1, [2, 1, [1, 2]]]
  4. >>> x.count(1)
  5. 2
  6. >>> x.count([1,2])
  7. 1

5.2 extend

extend 方法可以在列表的末尾一次性追加另一个序列中的多个值。

  1. >>> a = [1, 2, 3]
  2. >>> b = [4, 5, 6]
  3. >>> a.extend(b)
  4. >>> a
  5. [1, 2, 3, 4, 5, 6]

    extend 方法修改了被扩展的列表,而原始的连接操作(+)则不然,它会返回一个全新的列表。

  1. >>> a = [1, 2, 3]
  2. >>> b = [4, 5, 6]
  3. >>> a.extend(b)
  4. >>> a
  5. [1, 2, 3, 4, 5, 6]
  6. >>>
  7. >>> a + b
  8. [1, 2, 3, 4, 5, 6, 4, 5, 6]
  9. >>> a
  10. [1, 2, 3, 4, 5, 6]

5.3  index

index 方法用于从列表中找出某个值第一个匹配项的索引位置:

  1. names_class2.index('李四')

5.4  reverse

reverse 方法将列表中的元素反向存放。

  1. names_class2.reverse()
  2. print(names_class2)

5.5  sort

sort 方法用于在原位置对列表进行排序。

  1. x = [4, 6, 2, 1, 7, 9]
  2. x.sort()#x.sort(reverse=True) 

注意:

列表中有个地方需要注意下,即Python在操作列表的时候,None数据类型 和 空‘ ’保存在列表中的时候,都是有效元素。

  1. Python 3.5.2 (v3.5.2:4def2a2901a5,2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
  2. Type "help", "copyright", "credits" or "license" for more information.
  3. >>> L = []
  4. >>> L.append('')
  5. >>> L
  6. ['']
  7. >>> len(L) # 列表元素个数
  8. 1
  9. >>> L.append(None)
  10. >>> L
  11. ['', None]
  12. >>> len(L)
  13. 2

5.6  列表的切片操作

Python2中可以直接用L=range(0,100)构造一个列表:[0,1,2,3,4,........,98,99]

python3中的构造方法有点区别:L = list(range(0,100))

可以通过切片轻松取出某一段数列。比如前10个数:

  1. >>> L[:]
  2. [, , , , , , , , , ]

后10个数:

  1. >>> L[-:]
  2. [, , , , , , , , , ]

前11-20个数:

  1. >>> L[:]
  2. [, , , , , , , , , ]

前10个数,每两个取一个:

  1. >>> L[::]
  2. [, , , , ]

所有数,每5个取一个:

  1. >>> L[::]
  2. [, , , , , , , , , , , , , , , , , , , ]

甚至什么都不写,只写[:]就可以原样复制一个list:

  1. >>> L[:]
  2. [, , , , ..., ]

tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple:

  1. >>> (, , , , , )[:]
  2. (, , )

字符串'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:

  1. >>> 'ABCDEFG'[:]
  2. 'ABC'
  3. >>> 'ABCDEFG'[::]
  4. 'ACEG'

[ tuple (元组) ]

元组被称为只读列表,即数据可以被查询,但不能被修改,所以,列表的切片操作同样适用于元组。

元组类似与列表,用逗号(,)来分隔存储的数据,与列表不同的是元组是不可变类型(immutable),列表可以任你插入或改变,而元组不行。所以,元组适用于你的数据是固定且不需改变的情形。从内存的角度来看,使用元组有一大好处是,Python可以明确地知道需要分配多少内存给元组(同样 Frozensets 也有这个好处)。

元组写在小括号(())里,元素之间用逗号隔开。

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

  1. tup1 = () # 空元组
  2. tup2 = (20,) # 元组中只有一个元素的时候,需要在元素后添加逗号,以消除歧义,避免解释器误解成数学计算意义上的括号。
    # 这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,一个元素不加逗号,就产生了歧义。
    Python规定,不加逗号情况下,按小括号进行计算,这里计算结果是20
    所以,只有1个元素的元组定义时,元素后边必须加一个逗号,,来消除歧义。
  1. 作用:
  1. 1 对于一些数据我们不想被修改,可以使用元组;
  2.  
  3. 2 另外,元组的意义还在于,元组可以在映射(和集合的成员)中当作键使用——而列表则不行;元组作为很多内建函数和方法的返回值存在。

元组相关操作:

1 创建元组

  1. tup1 = ('jesson', 'pitter', 1997, 2000);
  2. tup2 = (1, 2, 3, 4, 5 );
  3. tup3 = "a", "b", "c", "d";
  4.  
  5. print(tup1,type(tup1))
  6. print(tup2,type(tup2))
  7. print(tup3,type(tup3))
  8.  
  9. # 输出结果
  10. # ('jesson', 'pitter', 1997, 2000) <class 'tuple'>
  11. # (1, 2, 3, 4, 5) <class 'tuple'>
  12. # ('a', 'b', 'c', 'd') <class 'tuple'>

元组与字符串类似,下标索引从0开始,可以进行截取,组合等。

2 访问元组

  1. tup1 = ('jesson', 'pitter', 1997, 2000);
  2. tup2 = (1, 2, 3, 4, 5, 6, 7 );
  3.  
  4. print ("tup1[0]是: ", tup1[0]) # 访问元组tup1的第一个元素
  5. print ("tup2[1:5]是: ", tup2[1:5]) # 对元组tup2中的元素 从索引下标1开始到4 进行切片操作
  6.  
  7. # 输出结果:
  8. # tup1[0]是: jesson
  9. # tup2[1:5]是: (2, 3, 4, 5)

3 修改元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:

  1. tup1 = (12, 34.56);
  2. tup2 = ('abc', 'xyz');
  3.  
  4. # tup1[0] = 100; # 这种修改元组元素操作是非法的,编译的时候会报错。
  5. tup3 = tup1 + tup2; # 可以 创建一个新的元组
  6. print(tup3)
  7.  
  8. # 输出结果:
  9. #(12, 34.56, 'abc', 'xyz')

4 删除元组

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。

  1. tup = ('jesson', 'pitter',"你好",1997, 2000);
  2. print(tup)
  3.  
  4. del(tup)
  5. print("执行del删除操作后的元组 tup:")
  6. print(tup)
  7.  
  8. # 以上实例元组被删除后,输出变量会有异常信息,输出如下所示:
  9. # Traceback (most recent call last):
  10. # File "J:/元组 tuple.py", line 51, in <module>
  11. # print(tup)
  12. # NameError: name 'tup' is not defined

5 元组运算符
   与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

6 元组内置函数

  1. Python元组包含了以下内置函数
  2. 1cmp(tuple1, tuple2):比较两个元组元素。
  3. 2len(tuple):计算元组元素个数。
  4. 3max(tuple):返回元组中元素最大值。
  5. 4min(tuple):返回元组中元素最小值。
  6. 5tuple(seq):将列表转换为元组。

7 元组总结

tuple和list非常类似,但是tuple一旦初始化就不能修改;这样也就有了一个要求,就是:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来。

既然元组是不能修改的,那么它的这种不可变性有什么意义?

因为tuple不可变,所以代码更安全;如果可能,能用tuple(元组)代替list(列表)就尽量用tuple。

[ Dictionary (字典) ]

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

创建字典:

  1. dic1={'name':'jesson','age':26,'sex':'male'}
  2. dic2=dict((('name','jesson'),))
  3. print(dic1)
  4. print(dic2)

相关操作:

1 增

  1. dic3={}
  2.  
  3. dic3['name']='jesson'
  4. dic3['age']=26
  5. print(dic3)#{'name': 'jesson', 'age': 26}
  6.  
  7. a=dic3.setdefault('name','pitter')
  8. b=dic3.setdefault('ages',25)
  9. print(a,b)
  10. print(dic3)

2 查

  1. dic3={'name': 'jesson', 'age': 26}
  2.  
  3. # print(dic3['name'])
  4. # print(dic3['names'])
  5. #
  6. # print(dic3.get('age',False))
  7. # print(dic3.get('ages',False))
  8.  
  9. print(dic3.items())
  10. print(dic3.keys())
  11. print(dic3.values())
  12.  
  13. print('name' in dic3)# py2: dic3.has_key('name')
  14. print(list(dic3.values()))

3 改

  1. dic3={'name': 'jesson', 'age': 26}
  2. dic3['name']='pitter'
  3. dic4={'sex':'male','hobby':'sports','age':26}
  4. dic3.update(dic4)
  5. print(dic3)

4 删

  1. dic4={'name': 'jesson', 'age': 26,'class':1}
  2.  
  3. # dic4.clear()
  4. # print(dic4)
  5. del dic4['name']
  6. print(dic4)
  7.  
  8. a=dic4.popitem()
  9. print(a,dic4)
  10.  
  11. # print(dic4.pop('age'))
  12. # print(dic4)
  13.  
  14. # del dic4
  15. # print(dic4)

5 字典其他操作以及涉及到的方法

5.1 dict.fromkeys

  1. d1=dict.fromkeys(['host1','host2','host3'],'Mac')
  2. print(d1)
  3.  
  4. d1['host1']='jesson'
  5. print(d1)
  6. #######
  7. d2=dict.fromkeys(['host1','host2','host3'],['Mac','huawei'])
  8. print(d2)
  9. d2['host1'][0]='jesson'
  10. print(d2)

5.2  d.copy() 对字典 d 进行浅复制,返回一个和d有相同键值对的新字典

5.3 sorted(dict) : 返回一个有序的包含字典所有key的列表

  1. dic={5:'',2:'',4:''}
  2. print(sorted(dic)) 

5.4 d.get() 获取字典 d 中的相关值;

  1. d = {'name':'jesson','age':''}
  2. print(d['name']) # 输出结果:jesson 通过字典的键 获取对应值
  3. print(d.get('name')) # 输出结果:jesson 通过get方法获取相应键的值
  4.  
  5. print(d.get('sex','male')) #输出结果:male # 字典的get()方法操作,如果字典中没有键(sex)
  6. # 默认返回值是:none 这里可以在键"sex"后 添加默认值,比如:(male)
  7. # 如果原字典中可以找到该键,就输出相应的值;如果找不到键,就输出添加的默认值。

5.5 字典的遍历

  1. dic5={'name': 'jesson', 'age': 26}
  2. # print(dic5.keys())
  3. # print(dic5.values())
  4.  
  5. for i in dic5:
  6. print(i, dic5[i])
  7. #输出结果
  8. # age 26
  9. # name jesson
  10.  
  11. for items in dic5.items():
  12. print(items)
  13. # 输出结果
  14. # ('age', 26)
  15. # ('name', 'jesson')
  16.  
  17. for keys, values in dic5.items():
  18. print('key:{},value:{}'.format(keys,values)) # Python两种字符串拼接方式 实现输出功能一样
  19. print('key:%s,value:%s' %(keys, values))
  20. # 输出结果
  21. # age 26
  22. # name jesson

5.6 通过字典来存取班级学生信息:

  1. dic={'zhangsan':{'age':23,'sex':'male'},
  2. '李四':{'age':33,'sex':'male'},
  3. '王五':{'age':27,'sex':'women'}
  4. }

5.7 update合并:

用法待补充

[ Set (集合) ]

把不同的元素组成一起形成集合,是python基本的数据类型。

集合元素(set elements):组成集合的成员(不可重复)

  1. li=[1,2,'a','b']
  2. s =set(li)
  3. print(s) # {1, 2, 'a', 'b'}
  4.  
  5. li2=[1,2,1,'a','a']
  6. s=set(li2)
  7. print(s) #{1, 2, 'a'}

集合对象是一组无序排列的可哈希的值:集合成员可以做字典的键

  1. li=[[1,2],'a','b']
  2. s =set(li) #TypeError: unhashable type: 'list'
  3. print(s)

集合分类:可变集合、不可变集合

可变集合(set):可添加和删除元素,非可哈希的,不能用作字典的键,也不能做其他集合的元素

不可变集合(frozenset):与上面恰恰相反

  1. li=[1,'a','b']
  2. s =set(li)
  3. dic={s:''} #TypeError: unhashable type: 'set'

集合相关操作:

1、创建集合

由于集合没有自己的语法格式,只能通过集合的工厂方法set()和frozenset()创建

  1. s1 = set('jesson')
  2. s2 = frozenset('pitter')
  3.  
  4. print(s1,type(s1)) #{'l', 'v', 'i', 'a', 'n'} <class 'set'>
  5. print(s2,type(s2)) #frozenset({'n', 'y', 'a', 'u'}) <class 'frozenset'>

2、访问集合

由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历或使用in、not in来访问或判断集合元素。

  1. s1 = set('jesson')
  2. print('a' in s1)
  3. print('b' in s1)
  4. # s1[1] #TypeError: 'set' object does not support indexing
  5.  
  6. for i in s1:
  7. print(i)

  8. #输出结果:
  9. False
  10. False
  11. s
  12. j
  13. n
  14. o
  15. e

3、更新集合

可使用以下内建方法来更新:

s.add()
s.update()
s.remove()

注意只有可变集合才能更新:

  1. # s1 = frozenset('jesson')
  2. # s1.add(0) #输出报错:AttributeError: 'frozenset' object has no attribute 'add'
  3.  
  4. s2 = set('jesson')
  5.  
  6. # s2.add('mm')
  7. # print(s2) #输出结果: {'e', 'mm', 'o', 's', 'n', 'j'} # 注意:.add()和.update()的区别,两者都可以更新集合内元素,
    但是.add()方法是把()中新值,当作整体去更新;而.update()方法是将()中的新值分开,单个,一个一个的添加更新。
  8.  
  9. # s2.update('HO') # 添加多个元素
  10. # print(s2) #输出结果: {'j', 'o', 'n', 'e', 'H', 'O', 's'}
  11.  
  12. # s2.remove('e')
  13. # print(s2) #输出结果: {'j', 'o', 's', 'n'}

del:删除集合本身

4、集合类型操作符 

(1)   in ,not in
(2)   集合等价与不等价(==, !=)
(3)   子集、超集

  1. s=set('jessonwang')
  2. s1=set('jesson')
  3. print('e' in s)
  4. print(s1<s)

(4)   联合(|)

联合(union)操作与集合的or操作其实等价的,联合符号有个等价的方法,union()。

  1. s1=set('jesson')
  2. s2=set('wang')
  3. s3=s1|s2
  4. print(s3) #输出结果:{'e', 'o', 'a', 'w', 's', 'g', 'n', 'j'}
  5. print(s1.union(s2)) #输出结果:{'e', 'o', 'a', 'w', 's', 'g', 'n', 'j'}

(5) 交集(&)

与集合and等价,交集符号的等价方法是intersection()

  1. s1 = set('jessonWang')
  2. s2 = set('pitterZhao')
  3. s3 = s1 & s2
  4. print(s3) # 输出结果:{'e', 'a', 'o'}
  5.  
  6. print(s1.intersection(s2)) # 输出结果:{'e', 'a', 'o'}

(6) 查补(-)
      等价方法是difference()

  1. s1 = set('jesson')
  2. s2 = set('wang')
  3. s3 = s1 - s2
  4. print(s3) #输出结果:{'j', 's', 'o', 'e'}
  5.  
  6. print(s1.difference(s2)) #输出结果:{'j', 's', 'o', 'e'}

(7) 对称差分(^)

对称差分是集合的XOR(‘异或’),取得的元素属于s1,s2但不同时属于s1和s2.其等价方法symmetric_difference()

  1. s1 = set('jesson')
  2. s2 = set('wang')
  3. s3 = s1 ^ s2
  4. print(s3) #输出结果: {'s', 'a', 'o', 'w', 'e', 'j', 'g'}
  5.  
  6. print(s1.symmetric_difference(s2)) #输出结果:{'s', 'a', 'o', 'w', 'e', 'j', 'g'}

应用技巧:

'''最简单的去重方式'''

  1. lis = [1,2,3,4,1,2,3,4]
  2. print list(set(lis)) #[1, 2, 3, 4]

补充:http://www.jb51.net/article/84869.htm

Json 序列化数据

Json数据类型 虽然不是Python的基本数据类型,但是,在日常开发中,涉及到的数据交互类型中,却经常会遇到Json 数据类型,因此这里有必要,针对性的学习一下。

Json 数据类型格式:

小技巧:学习json的时候,格式类比python中的字典!但是,Python中一切皆对象,字典是字典对象,json是json格式的字符串对象;另外,注意,Json格式的数据中,没有单引号!!!一般都是双引号!!!

Json相关的操作中,常用的有四个参数,分别是:json.dumps和json.loads  json.dump和json.load,它们是成对出现的。

json.dumps 是将一个Python数据类型列表进行json格式的编码解析,

示例如下:

  1. >>> import json #导入python 中的json模块
  2. >>> l = [‘iplaypython’,[1,2,3], {‘name’:’xiaoming’}] #创建一个l列表
  3. >>> encoded_json = json.dumps(l) # 将l列表,进行json格式化编码
  4. >>> print repr(l) #输出结果: ['iplaypython', [1, 2, 3], {'name': 'xiaoming'}]
  5. >>> print encoded_json #输出结果 ["iplaypython", [1, 2, 3], {"name": "xiaoming"}]

这样我们就将一个list列表对象,进行了json格式的编码转换。

解码python json格式,可以用这个模块的json.loads()函数的解析方法,
示例如下:

  1. >>> decode_json = json.loads(encoded_json)
  2. >>> print type(decode_json) #查看一下解码后的对象类型 <class 'list'>
  3. >>> print decode_json #输出结果 ['iplaypython', [1, 2, 3], {'name': 'xiaoming'}]

将python json格式解码成Python数据风格

json.dump和json.dumps很不同,json.dump主要用来json文件读写,和json.load函数配合使用。

json.dump(x,f),x是对象,f是一个文件对象,这个方法可以将json字符串写入到文本文件中。

  1. import json
  2.  
  3. data = [{"a":"aaa","b":"bbb","c":[1,2,3,(4,5,6)]},33,'tantengvip',True]
  4. data2 = json.dumps(data)
  5. print(data2)
  6. f = open('./tt.txt','a')
  7. json.dump(data2,f)
这样就生成了一个tt.txt文件,保存了json格式的数据。dumps还提供pritty print,格式化的输出。

json.load加载json格式文件   下面是从txt文件中读取了json数据。

  1. f = open('./tt.txt','r')
  2. hehe = json.load(f)
  3. print(hehe)
  1. dumps & loads 针对内存对象,
  2. 即将Python内置数据序列化为字串
  3. 如使用json.dumps序列化的对象d_json=json.dumps({'a':1, 'b':2}),在这里d_json是一个字串'{"b": 2, "a": 1}'
  4. d=json.loads(d_json) #{ b": 2, "a": 1},使用load重新反序列化为dict

  5. dump & load 针对文件句柄,(即,json.dump()方法,增加了对文件的操作,可以直接将支持序列化的数据,dumpjson格式的字符串,并将其保存到指定文件;反之,json.load()方法是将json格式字符串
  1. 从指定文件中读取出来,反序列化为原来dump之前的数据格式!) 比如:本地有一个json文件a.json则可以d=json.load(open('a.json')), 而如果是dump操作,就是将内置类型序列化为json对象后写入指定的文件!

Json总结:

json.dumps : dict转成str      json.dump 是将python数据---->>序列化为json格式的字符串,并将其保存到指定文件中;

json.loads :  str转成dict       json.load 是从某个数据文件中读取json格式的数据  ---->>将其反序列化成Python数据

Python基础5:列表 元祖 字典 集合 Json的更多相关文章

  1. Python学习笔记---切片 列表 元祖 字典 集合

    列表[1,2,3,2]#[] 元祖(1,2,3,2)#() 字典{1:2,3:2}#{} 集合{1,2,3,2}#{} 1,集合与列表的区别,集合里不能有重复元素 2.字典与集合的区别,都是用花括号表 ...

  2. Python基础5:列表 元祖 字典 集合

    [ 列表] 列表(list)是Python以及其他语言中最常用到的数据结构之一.Python使用使用中括号 [ ] 来解析列表. 列表是可变的(mutable)——即:可以改变列表的内容. 相关操作: ...

  3. python学习之列表,元祖,字典

    python基础 列表  [ ] stats =[1,2,3,4,5] 元素1,2,3,4,5 下标,索引,角标,初始从0开始 增加 stats.append(7)#append方法添加 stats. ...

  4. Python基础2 列表 元祖 字符串 字典 集合 文件操作 -DAY2

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  5. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  6. python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍

    目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...

  7. python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍

    目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...

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

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

  9. python基础3(元祖、字典、深浅copy、集合、文件处理)

    本次内容: 元祖 字典 浅copy和深copy 集合 文件处理 1.1元祖 元祖(tuple)与列表类似,不同之处在于元祖的元素不能修改,元祖使用小括号(),列表使用方括号[].元祖创建很简单,只需要 ...

随机推荐

  1. 2018.09.26 洛谷P2464 [SDOI2008]郁闷的小J(map+vector)

    传送门 本来出题人出出来想考数据结构的. 但是我们拥有map+vector/set这样优秀的STL,因此直接用map离散化,vector存下标在里面二分找答案就行了. 代码: #include< ...

  2. linux系统编程之进程(五):exec系列函数(execl,execlp,execle,execv,execvp)使用

    本节目标: exec替换进程映像 exec关联函数组(execl.execlp.execle.execv.execvp) 一,exec替换进程映像 在进程的创建上Unix采用了一个独特的方法,它将进程 ...

  3. gj2 python中一切皆对象

    2.1 python中一切皆是对象 动态语言和静态语言的区别,Python的面向对象更彻底 同时动态语言,代码的灵活性高 没有编译(检查)的过程,错误只有在运行起来后才会发现 函数和类也是对象,属于p ...

  4. 解决以showModalDialog打开的页面在提交表单时弹出新窗口的问题

    源代码如下: 父页面: window.showModalDialog("../readfile/readFile.jsp","","dialogWid ...

  5. LA 3602 DNA Consensus String (暴力枚举)

    题意:给定m个长度为n的DNA序列,求一个最短的DNA序列,使得总Hamming距离最小. Hamming距离等于字符不同的位置个数. 析:看到这个题,我的第一感觉是算时间复杂度,好小,没事,完全可以 ...

  6. UVa 11636 Hello World! (水题思维)

    题意:给你一个数,让你求需要复制粘贴多少次才能达到这个数. 析:这真是一个水题,相当水,很容易知道每次都翻倍,只要大于等于给定的数就ok了. 代码如下: #include <iostream&g ...

  7. spring mvc 文档哪里有

    官方: http://docs.spring.io/spring/docs/4.2.0.RC1/spring-framework-reference/htmlsingle/#spring-web Th ...

  8. bootstrap modal

    模态框提供了两个可选尺寸,通过为 .modal-dialog 增加一个样式调整类实现.加modal-lg,加modal-sm,不加也可以,共有三种尺寸. 触发方式,data-target, 感觉比js ...

  9. 好用的SHELL小编程

    1>判断输入为数字,字符或其他      脚本代码:      检测结果:   2>求平均数:   测试效果:     3>自减输出: 脚本代码: 测试效果:    4>在文件 ...

  10. Android-intent.addFlags-Activity启动模式

    之前写的Android-Activity启动模式(launchMode),Android-Activity启动模式-应用场景,讲解的都是在AndroidManifest.xml配置launchMode ...