1. 元组

  元组由不同元素组成,每个元素可以存储不同类型的数据,元组是有序的,元组创建后不能再做任何修改。

  元组的创建:

tuple = ('a','b','c','d')

  如果创建的元组只有1个元素,需要后面加','逗号,不然python无法区分变量是表达式还是元组,如下案例。

t = ('abc')
print(t[0])
print(type(t)) t1 = ('abc',)
print(t1[0])
print(type(t1)) '''
a
<class 'str'>
abc
<class 'tuple'>
'''

元组的方法:

  • index
def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
"""
T.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
"""
return 0 t = (1,2,'d',1,1,1) #index
print("index:",t.index(1))
print("index:",t.index(1,2,5))
print("count:",t.count(1))
  • count
def count(self, value): # real signature unknown; restored from __doc__
""" T.count(value) -> integer -- return number of occurrences of value """
return 0 #count
t = (1,2,'d',1,1,1)
print(t.count(1)) #4
  • 取值与切片

  元组的下标从0开始,索引的值可以为0、正整数或负整数。

#取值tuple[n]
#切片tuple[m:n]
t = ('abc','def','ghi')
print(t[1]) #def
print(t[1:]) #('def', 'ghi')
print(t[:]) #('abc', 'def', 'ghi')
print(t[0:-2]) #('abc',)
print(t[0:-1]) #('abc', 'def')
  • 二元元组
#二元元组
t = ((1,2,3),('a','b','c'))
print(t[0][1])
  • 元组的遍历
#元组遍历
t1 = ('zhangsan','lisi',250)
for i in t1:
print(i) #二元元祖遍历
t2 = (t1,(111,222,'333'))
#遍历方法一
for x in t2:
for y in x: #这里x的类型是tuple
print(y) #遍历方法二
for x in range(len(t2)):
for y in range(len(t2[x])): #这里x的类型是int
print(t2[x][y])
  • 元组的“打包”和“解包”

  创建元组的过程,python称为“打包”,“解包”则是将元组的各个元素分别赋值给多个变量。

#元组的打包与解包

t = ('apple','banana','grape','orange')
a,b,c,d = t
print(a,b,c,d) #apple banana grape orange

 2. 列表

  列表与元组类似,用[]表示,有序的,支持增删改查。

列表的方法:

#列表用一对[]表示

names = ["zhangsan","lisi","wangwu",'zhangsan','1',"2","zhangsan",'a','lisi','b']
print(names) #append 增加
names.append("cc")
print(names) #insert 插入
names.insert(1,"dd") #在该下标位置插入元素
print(names) #切片
na = names[1:3] #顾头不顾尾
print("切片:",na)
#步长切片
na = names[1:5:3] #names[::3]
print("步长切片:",na) #修改元素
names[1] = 'DD'
print(names) #reverse反转
names.reverse()
print("reverse:\n",names) #count计数
t = names.count("lisi")
print("count:",t) #index查看元素下标
t = names.index("lisi") #默认显示查找到的第一个元素的下标
print("index:",t)
t = names.index('lisi',3,10)
print("index:",t) #extend扩展列表
names2 = ['zhangsan','lisi2','wangwu']
names.extend(names2)
print("extend:\n",names)
#也可以使用"+"、"+="进行扩展
names3 = names + names2
print("names+names2:\n",names3)
names += names2
print("names+=names2:\n",names) #sort排序
names.sort()
print("sort:\n",names) #删除元素,有三种方法
#1.del 2.remove 3.pop
del names[1] #del names 删除变量
print(names)
names.remove("lisi") #删除第一个lisi
print(names)
names.pop() #默认删除最后一个元素
print(names)
names.pop(2) #加下标就是删除该下标所指的元素
print(names) #循环列表
for i in names:
print(i) #len(list)获取列表长度
print("len(names:",len(names)) #clear清空列表
names.clear()
print(names)

enumerate读取下标与内容

#读取列表下标与内容的方法
li = ['a','b','c']
for i in (enumerate(li)):
print(i) for index,item in enumerate(li):
print(index,item) print("-------华丽的分割线-------")
#传统方法
for i in li:
print(li.index(i),i)

 列表的深浅copy

  假设一个列表有多层,比如['a',['b','c'],'d'],那么浅copy只是拷贝了列表的第一层,列表的第二层(更深层的)只是第二层列表的一个引用(内存地址相同)。如果需要完全的拷贝列表,则需要使用深copy,是通过python内置的copy模块来实现的。

#!/usr/bin/env python
# -*- coding:utf-8 -*- #深浅copy,浅copy只拷贝列表第一层元素,更深层的只是一层引用 import copy #列表赋值,只是列表内存地址的引用
li1 = ['a','b',['A','B','C']]
li2 = li1
li1[1] = 'bb'
li1[2][1] = 'BB'
print(li1,li2) #两个列表完全相同,因为只是内存地址的引用
print("id(li1):",id(li1))
print("id(li2):",id(li2)) #两个列表的内存地址完全一致 #浅copy的几种方法
li3 = li1.copy()
li4 = li1[:]
li5 = copy.copy(li1)
li6 = list(li1) #工厂模式
#查看浅copy的内存
#第二层['A','B','C']无法拷贝,只是一层引用,所以内存地址一样
print(id(li1[2]),id(li3[2]),id(li4[2]),id(li5[2]),id(li6[2]))
print(id(li1[0]),id(li3[0]),id(li4[0]),id(li5[0]),id(li6[0]))
li3[0] = 'a3'
li4[0] = 'a4'
li5[0] = 'a5'
li6[0] = 'a6'
print(id(li1[0]),id(li3[0]),id(li4[0]),id(li5[0]),id(li6[0])) #深拷贝就是完全复制一份
print("\n\n----浅copy应用----")
stu = ['name',['平均分:',80]]
stu1 = stu.copy()
stu2 = stu[:]
stu3 = copy.copy(stu)
stu4 = list(stu)
stu1[0] = "zhangsan"
stu2[0] = 'lisi'
stu3[0] = 'wangwu'
stu4[0] = '250'
print(stu1)
print(stu2)
print(stu3)
print(stu4)
stu1[1][1] = 90
print(stu1,stu2,stu3,stu4) print("\n\n======深拷贝======")
l = ['a','b',['A','B',['C','D']]]
l1 = copy.deepcopy(l)
print(id(l),id(l1)) #两个列表内存地址不一致,也就是实现了完全拷贝
l[0] = 'aa'
l1[2][0] = 'AA'
l[2][2][0] = 'CC'
print("l ",l)
print("l1",l1)

列表实现的堆栈和队列

  堆栈和队列是数据结构中常用的数据结构,列表可以用来实现堆栈和队列。
  堆栈是指最先进入堆栈的元素最后才输出,即“后进先出”。栈的插入、弹出是通过栈首指针控制的。插入一个新的元素,指针移动到新元素的位置;弹出一个元素,指针移到下面一个元素的位置,即原堆栈倒数第二个元素的位置,该元素称为栈顶元素。
  队列是指最先进入队列的元素最先输出,即“先进先出”。队列的插入、弹出是分别通过队首指针和队尾指针控制的。插入一个新元素,队尾指针移动到新元素的位置;弹出一个元素,队首指针移动到原队列中第二个元素的位置,该元素称为队列的第一个元素。

通过append()和pop()模拟两种数据结构:

li = ['a','b','c','d']
#先进后出
li.append('e')
print(li.pop()) #e
#先进先出
li.append('f')
print(li.pop(0)) #a

3. 字典

  字典是由{}创建,由"键-值"对组成的集合,字典中的"值"通过"键"来引用。字典是无序的,key必须是唯一的,可以增删改查。

字典的方法:

#字典的访问与修改
dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
#通过key访问value
print(dic.get('a')) #appale
print(dic['a']) #appale #修改value
dic['a'] = 'APPALE'
print(dic) #{'a': 'APPALE', 'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog'} #添加元素
dic.setdefault("e")
print(dic) #{'a': 'APPALE', 'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog', 'e': None}默认value是None
#赋值
dic.setdefault('e','egg')
#添加的同时赋值
dic.setdefault('p','pig')
print(dic)
#{'a': 'APPALE', 'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog', 'e': None, 'p': 'pig'} #判断k是否存在字典中
dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print('a' in dic) #True
print('A' in dic) #False

源代码:

class dict(object):
"""
dict() -> new empty dictionary
dict(mapping) -> new dictionary initialized from a mapping object's
(key, value) pairs
dict(iterable) -> new dictionary initialized as if via:
d = {}
for k, v in iterable:
d[k] = v
dict(**kwargs) -> new dictionary initialized with the name=value pairs
in the keyword argument list. For example: dict(one=1, two=2)
"""
def clear(self): # real signature unknown; restored from __doc__
""" D.clear() -> None. Remove all items from D. """
pass
#清空字典 dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
dic.clear()
print(dic) '''
{}
''' def copy(self): # real signature unknown; restored from __doc__
""" D.copy() -> a shallow copy of D """
pass
#浅拷贝,只拷贝第一层 dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
#字典的拷贝,同列表的深浅拷贝
dic1 = dic.copy()
print(dic1)
print(id(dic),id(dic1))
dic['b'][0]='BANANA'
print(dic,dic1) @staticmethod # known case
def fromkeys(*args, **kwargs): # real signature unknown
""" Returns a new dict with keys from iterable and values equal to value. """
pass
#Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。 seq = ('appale', 'banana', 'cat')
dic = dict.fromkeys(seq)
print(dic) dic2 = dict.fromkeys(seq,10)
print(dic2) '''
{'appale': None, 'banana': None, 'cat': None}
{'appale': 10, 'banana': 10, 'cat': 10}
''' def get(self, k, d=None): # real signature unknown; restored from __doc__
""" D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None. """
pass
#通过key获得value,可以加参数,如果k不在d里面,输出d的值 dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print(dic.get('b')) #['banana', 'bear']
print(dic.get('c','egg')) #cat
print(dic.get('e','egg')) #egg,'e'不在字典里,输出gg def items(self): # real signature unknown; restored from __doc__
""" D.items() -> a set-like object providing a view on D's items """
pass dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print(dic.items()) '''
dict_items([('a', 'appale'), ('b', ['banana', 'bear']), ('c', 'cat'), ('d', 'dog')])
'''
###遍历输出键值对####
for k,v in dic.items():
print(k,v) '''
a appale
b ['banana', 'bear']
c cat
d dog
''' def keys(self): # real signature unknown; restored from __doc__
""" D.keys() -> a set-like object providing a view on D's keys """
pass
#获取所有keys dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print(dic.keys()) '''
dict_keys(['a', 'b', 'c', 'd'])
'''
####遍历keys####
for k in dic.keys():
print(k) '''
a
b
c
d
''' def pop(self, k, d=None): # real signature unknown; restored from __doc__
"""
D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
If key is not found, d is returned if given, otherwise KeyError is raised
"""
pass
#根据key,删除value dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print(dic.pop('a')) #appale
print(dic) #{'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog'}
# print(dic.pop('e')) #KeyError
print(dic.pop('e','egg')) #egg
print(dic) #{'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog'} def popitem(self): # real signature unknown; restored from __doc__
"""
D.popitem() -> (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty.
"""
pass
#删除最后一对键值对 dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print(dic.popitem())
print(dic) '''
('d', 'dog')
{'a': 'appale', 'b': ['banana', 'bear'], 'c': 'cat'}
''' def setdefault(self, k, d=None): # real signature unknown; restored from __doc__
""" D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D """
pass
#向字典追加元素,键为k,值为d dic = {}
dic.setdefault("k1")
print(dic)
dic.setdefault("k2", "111")
print(dic) '''
{'k1': None}
{'k1': None, 'k2': '111'}
''' def update(self, E=None, **F): # known special case of dict.update
"""
D.update([E, ]**F) -> None. Update D from dict/iterable E and F.
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k]
If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v
In either case, this is followed by: for k in F: D[k] = F[k]
"""
pass
#更新字典,如果k存在则替换,如果不存在则增加 dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
dic1 = {'e':'egg','f':'fun'}
dic2 = {'a':'APPALE','p':'pig'}
dic.update(dic1)
print(dic)
dic.update(dic2)
print(dic) '''
{'a': 'appale', 'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog', 'e': 'egg', 'f': 'fun'}
{'a': 'APPALE', 'b': ['banana', 'bear'], 'c': 'cat', 'd': 'dog', 'e': 'egg', 'f': 'fun', 'p': 'pig'}
''' def values(self): # real signature unknown; restored from __doc__
""" D.values() -> an object providing a view on D's values """
pass
#获取所有values
dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
print(dic.values()) '''
dict_values(['appale', ['banana', 'bear'], 'cat', 'dog'])
'''

字典的遍历:

#字典的遍历

dic = {'a':'appale','b':['banana','bear'],'c':'cat','d':'dog'}
#方法一(推荐该方法,速度快)
print("---方法一---")
for k in dic:
print(k,dic[k]) #方法二
print("---方法二---")
for (k,v) in dic.items():
print(k,v) #方法三
print("---方法三---")
print(dic.items()) '''
---方法一---
a appale
b ['banana', 'bear']
c cat
d dog
---方法二---
a appale
b ['banana', 'bear']
c cat
d dog
---方法三---
dict_items([('a', 'appale'), ('b', ['banana', 'bear']), ('c', 'cat'), ('d', 'dog')])
'''

字典的排序:

  字典和列表的排序可以使用sorted()实现。

dic = {'5':'zhangsan','p':'pig','a':'123','D':'dog'}
print(dic)
print(sorted(dic.items()))
#按照key排序
print(sorted(dic.items(),key=lambda d:d[0]))
#按照value排序
print(sorted(dic.items(),key=lambda d:d[1])) '''
{'5': 'zhangsan', 'p': 'pig', 'a': '123', 'D': 'dog'}
[('5', 'zhangsan'), ('D', 'dog'), ('a', '123'), ('p', 'pig')]
[('5', 'zhangsan'), ('D', 'dog'), ('a', '123'), ('p', 'pig')]
[('a', '123'), ('D', 'dog'), ('p', 'pig'), ('5', 'zhangsan')]
'''

全局字典sys.modules模块

  sys.modules是一个全局字典,这个字典是python启动后就加在在内存中的。每当导入新的模块,sys.modules都将记录这些模块。字典sys.modules对加载的模块起到了缓存作用。当某个模块第一次导入时,字典sys.modules将自动记录该模块。当第2次导入此模块时,python会直接到字典中查找,从而加快了程序运行的速度。
  sys.modules具有字典的所有方法,可以通过该方法了解当前的环境加载了哪些模块。

import sys

print(sys.modules.keys())   #返回sys模块及python自动加载的模块
print(sys.modules.values()) #返回模块的引用
print(sys.modules["os"]) #返回os对应的引用 #实现对导入模块的过滤
import sys
d = sys.modules.copy()
print(d)
import copy,string
print(set(sys.modules) - set(d)) #{'_string', 'string', 'copy'}

4. 集合

  集合是无序的,作用是:去重、关系测试。

集合常用操作:

l = [1,2,3,1,2,3]

#集合去重
l = set(l)
print(l)
print(type(l)) #集合长度
s = set('hello')
print(s) #{'h', 'e', 'o', 'l'}
print(len(s)) #4 #测试包含
print('h' in s)
#测试不包含
print('e' not in s) s1 = set(['a','b','c'])
s2 = set(['a','b','d','e']) #交集
print(s1.intersection(s2))
#{'b', 'a'} #并集
print(s1.union(s2))
#{'b', 'd', 'e', 'c', 'a'} #差集
print(s1.difference(s2)) #{'c'}
print(s2.difference(s1)) #{'d', 'e'} #子集
print(s1.issubset(s2)) #False
print(set(['a','b']).issubset(s1)) #True #父集
print(s1.issuperset(set(['a','b']))) #True #对称差集
print(s1.symmetric_difference(s2)) #{'c', 'e', 'd'}
print(s2.symmetric_difference(s1)) #{'c', 'e', 'd'} #isdisjoint如果没有交集返回真
print(s1.isdisjoint(s2)) #False
print(s1.isdisjoint(set([1,2,3]))) #True

关系测试的另一种写法:

s1 = set(['a','b','c'])
s2 = set(['a','b','d','e']) #并集
print(s1 | s2) #交集
print(s1 & s2) #差集
print(s1 - s2) #对称差集 (在前者中不在后者中)
print(s1 - s2) #{'c'}
print(s2 - s1) #{'e', 'd'}

源代码:

class set(object):
"""
set() -> new empty set object
set(iterable) -> new set object Build an unordered collection of unique elements.
"""
def add(self, *args, **kwargs): # real signature unknown
"""
Add an element to a set. This has no effect if the element is already present.
"""
pass
#新增一个元素 s = set(['a','b','c','d']) s.add('e')
print(s) def clear(self, *args, **kwargs): # real signature unknown
""" Remove all elements from this set. """
pass
#清空集合 s = set(['a','b','c','d']) s.clear()
print(s) def copy(self, *args, **kwargs): # real signature unknown
""" Return a shallow copy of a set. """
pass
#浅拷贝,同列表
s = set(['a','b','c','d']) s1 = s.copy()
print(s1)
print(id(s),id(s1)) def difference(self, *args, **kwargs): # real signature unknown
"""
Return the difference of two or more sets as a new set. (i.e. all elements that are in this set but not the others.)
"""
pass
#差集 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.difference(s2)) #{'c'}
print(s2.difference(s1)) #{'d', 'e'} def difference_update(self, *args, **kwargs): # real signature unknown
""" Remove all elements of another set from this set. """
pass
#将所有元素删除,重新生成一个有差集的集合 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.difference(s2)) #{'c'}
s1.difference_update(s2)
print(s1) #{'c'} def discard(self, *args, **kwargs): # real signature unknown
"""
Remove an element from a set if it is a member. If the element is not a member, do nothing.
"""
pass
#删除指定元素,如果该元素不在集合中也不会报错 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
s1.discard('b')
print(s1)
#{'a', 'c'} def intersection(self, *args, **kwargs): # real signature unknown
"""
Return the intersection of two sets as a new set. (i.e. all elements that are in both sets.)
"""
pass
#交集 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.intersection(s2))
#{'b', 'a'} def intersection_update(self, *args, **kwargs): # real signature unknown
""" Update a set with the intersection of itself and another. """
pass
#更新列表为交集 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.intersection(s2)) #{'a', 'b'}
s1.intersection_update(s2)
print(s1) #{'a', 'b'} def isdisjoint(self, *args, **kwargs): # real signature unknown
""" Return True if two sets have a null intersection. """
pass
#如果没有交集返回真 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.isdisjoint(s2)) #False
print(s1.isdisjoint(set([1,2,3]))) #True def issubset(self, *args, **kwargs): # real signature unknown
""" Report whether another set contains this set. """
pass
#子集 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.issubset(s2)) #False
print(set(['a','b']).issubset(s1)) #True def issuperset(self, *args, **kwargs): # real signature unknown
""" Report whether this set contains another set. """
pass
#父集 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.issuperset(set(['a','b']))) #True def pop(self, *args, **kwargs): # real signature unknown
"""
Remove and return an arbitrary set element.
Raises KeyError if the set is empty.
"""
pass
#随机删除一个元素,如果集合为空则报错 s1 = set(['a','b','c'])
print(s1.pop()) #默认随机删除
print(s1) s2 = set()
print(s2.pop())
#KeyError: 'pop from an empty set' def remove(self, *args, **kwargs): # real signature unknown
"""
Remove an element from a set; it must be a member. If the element is not a member, raise a KeyError.
"""
pass
#删除指定元素,如果元素不在集合中则报错 s1 = set(['a','b','c'])
s1.remove('b')
print(s1) #{'c', 'a'}
s1.remove('d') #KeyError: 'd' def symmetric_difference(self, *args, **kwargs): # real signature unknown
"""
Return the symmetric difference of two sets as a new set. (i.e. all elements that are in exactly one of the sets.)
"""
pass
#对称差集 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.symmetric_difference(s2)) #{'c', 'e', 'd'}
print(s2.symmetric_difference(s1)) #{'c', 'e', 'd'} def symmetric_difference_update(self, *args, **kwargs): # real signature unknown
""" Update a set with the symmetric difference of itself and another. """
pass
#将集合的对称差集重新写到该集合中 s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.symmetric_difference(s2)) #{'d', 'e', 'c'}
s1.symmetric_difference_update(s2)
print(s1) #{'c', 'e', 'd'} def union(self, *args, **kwargs): # real signature unknown
"""
Return the union of sets as a new set. (i.e. all elements that are in either set.)
"""
pass
#并集
s1 = set(['a','b','c'])
s2 = set(['a','b','d','e'])
print(s1.union(s2))
#{'b', 'd', 'e', 'c', 'a'} def update(self, *args, **kwargs): # real signature unknown
""" Update a set with the union of itself and others. """
pass
#添加多个元素
s1 = set(['a','b','c'])
s1.update('e')
s1.update('e','f',(1,2))
print(s1)
#{1, 2, 'b', 'f', 'e', 'a', 'c'}

 

Python元组、列表、字典、集合的更多相关文章

  1. python中元组/列表/字典/集合

    转自:https://blog.csdn.net/lobo_seeworld/article/details/79404566

  2. python 元组 列表 字典

    type()查看类型 //取整除 **幂 成员运算符: in  x在y序列中,就返回true 反之  not in 身份运算符: is is not 逻辑运算符 and or not 字符编码 问题 ...

  3. Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据

    Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...

  4. python :列表 字典 集合 类 ----局部变量可以改全局变量

    #列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...

  5. python基础一 -------如何在列表字典集合中根据条件筛选数据

    如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) fi ...

  6. python字符串/列表/字典互相转换

    python字符串/列表/字典互相转换 目录 字符串与列表 字符串与字典 列表与字典 字符串与列表 字符串转列表 1.整体转换 str1 = 'hello world' print(str1.spli ...

  7. python元组 列表 (取值、替换、插入、添加、删除)

    1.元组 列表 字典 元组( 元组是不可变的) hello = (1,2,3,4,5) type(hello)

  8. Python列表,元组,字典,集合

    列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能. 列表追加数据的方法:append(),extend(数组),insert(位 ...

  9. Python之旅Day2 元组 字符串 字典 集合

    元组(tuple) 元组其实跟列表差不多,也是存一组数,与列表相比,元组一旦创建,便不能再修改,所以又叫只读列表. 语法: names = ("Wuchunwei","Y ...

  10. Python基础2 列表 字典 集合

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

随机推荐

  1. js 的 一些操作。。。

    // 对错误图片进行处理 $("img").error(function() { $(this).attr("src", "http://127.0. ...

  2. Experimental Educational Round: VolBIT Formulas Blitz D

    Description After a probationary period in the game development company of IT City Petya was include ...

  3. 数据分析之Anaconda安装

    Anaconda概述 Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存.切 ...

  4. uva 815之理解诡异的海平线题目之不容易

    首先题意:(这个真的令人无奈,题目都看不太明白) 网上百度了一下,就是以下意思: 给你n*m个格子,每个格子的面积是10*10米,整个区域外看作无限高的墙壁.输入每个格子的海拔高度(可能为负数),以及 ...

  5. thinkphp Model的使用

    4.1 放在哪儿?项目/模块/Model目录下以本教程为例,Home模块的Model/Home/Model/目录下 4.2 model类文件叫什么?模型名: DemoModel.class.php 4 ...

  6. Vue.js-----轻量高效的MVVM框架(十一、使用slot分发内容)

    #单个slot html: <h3>#单个slot</h3> <!-- 定义child01模板 --> <template id="child01& ...

  7. 配置WAMP完美攻略

    软件介绍 Wamp Server 是一款功能强大的PHP 集成安装环境. 为了节约时间,本次使用 Wamp Server 来进行配置. wamp 的全部含义就是本篇文章的标题. 使用版本和操作系统 W ...

  8. C++之构造函数、拷贝类型

    无参数的构造函数适合没初始化值的初始化对象,而引用拷贝适合创建对象时用另一个对象对其初始化,如果此时用的是浅拷贝则释放一个对象内存时系统会释放2次从而出错(因为它指向同一个内存),深拷贝就不存在这个问 ...

  9. C语言实现通用链表初步(四)----双向链表

    在前面的文章中,我们讨论了如何实现通用类型的链表,方法是用void *类型的指针,指向数据.那么还有其他的方法吗(不考虑内核链表)? 答案是肯定的.用零长数组也可以实现. struct node_in ...

  10. php防止重复提交问题总结

    用户提交表单时可能因为网速的原因,或者网页被恶意刷新,致使同一条记录重复插入到数据库中,这是一个比较棘手的问题.我们可以从客户端和服务器端一起着手,设法避免同一表单的重复提交. 1.使用客户端脚本 提 ...