python | 列表,元组,字符串,集合,字典

列表:

  • 可以容纳任意数目不同类型的元素(支持我们学过的任意数据类型)
  • 元素之间有先后顺序
  • 用中括号包裹,每个元素用逗号隔开

例如:

students = ['林黛玉','薛宝钗','贾元春','贾探春','史湘云','妙玉','贾迎春','贾惜春','王熙凤','贾巧姐','李纨','秦可卿'
]

列表可容纳任意个元素,当然也包括 0 个元素。这样的列表我们称为 空列表,只用一对中括号 [] 表示即可,中间不加逗号。

反向索引的数字和我们日常生活中的倒数数字是一样的,用 -1 表示倒数第一个,用 -2 表示倒数第二个。

正向索引 和 反向索引 (比如:students[-1])都是通过位置,查找对应值的方法

快速获取列表索引值的方法:使用 列表.index(元素内容) 的形式

列表元素的修改:

通过 列表[索引] = 新值 的格式

# 第二个名字,索引为 1
students[1] = '贾宝玉'

列表元素的添加:

在列表末尾添加一个元素:append() 方法会在列表末尾新增一个元素,同时列表长度加一

students.append('贾宝玉')

在列表中间某个位置插入一个元素:insert() 方法

students.insert(9, '贾琏')

列表元素的删除:

用列表的 pop() 方法,pop() 的功能是:返回列表指定位置的元素,并删除这个元素。 pop() 可以传入一个参数,表示要删除的元素的索引,如果不传入,就默认为最后一个元素的索引。

students.pop()

可以使用更加便捷的 del 语句来操作列表,格式为:del 列表[索引]

del students[0]

通过 列表.remove(值) 的方式,我们可以在列表中找到 第一个 指定的值,然后将它删除。

students.remove('王熙凤')

列表的分片:

列表分片用一对以冒号分隔的索引位置表示,格式为 列表[起始索引:结束索引]。比如要获取 students 中第三到第五个元素,也就是索引为 234 的元素,就要写成 students[2:5]

on_duty = ['贾琏', '王熙凤', '林黛玉', '贾宝玉', '李纨', '薛宝钗', '妙玉']# 打印周一周二值日的人
print(on_duty[:2])# 打印周三到周五值日的人
print(on_duty[2:5])# 打印周末值日的人
print(on_duty[-2:])

截取前三个元素,就写成 list[:3];而截取最后四个元素,就写成 list[-4:];截取中间部分 list[a:b],分片长度就是 b - a。

列表常用方法:

统计元素出现的次数:count() 方法可以统计元素在列表中出现的次数

students = ['林黛玉', '贾宝玉', '薛宝钗', '贾宝玉']
print(students.count('贾宝玉'))
# 输出:2

排序:sort() 是一个很强大的方法,可以对列表内的元素进行排序。

str_list = ["lin", "jia", "xue"]
str_list.sort()
print(str_list)
# 输出:['jia', 'lin', 'xue']num_list = [4, 2, 1, 9]
num_list.sort()
print(num_list)
# 输出:[1, 2, 4, 9]
  • 字符串列表的排序按照每个元素首字母的顺序来排序,比如 j 在 l 前面,l 在 x 前面,可以简单地按照 26 个字母顺序表即可;
  • 数值列表的排序是按照数值大小从小到大进行排序,比如 1 比 2 小,所以 1 在 2 前面。

反转、复制和清空:reverse()copy()clear() 方法

# reverse() 方法:将列表顺序反转
students = ["林黛玉", "贾宝玉", "薛宝钗"]
students.reverse()
print(students)
# 输出:['薛宝钗', '贾宝玉', '林黛玉']# copy() 方法:复制一个同样的列表
students1 = ["林黛玉", "贾宝玉", "薛宝钗"]
students2 = students1.copy()
print(students2)
# 输出:['林黛玉', '贾宝玉', '薛宝钗']# clear() 方法:清空列表
students = ["林黛玉", "贾宝玉", "薛宝钗"]
students.clear()
print(students)
# 输出:[]

列表的基本运算:

成员运算符 in:用来判断一个元素是否在一个列表中,格式为 元素 in 列表。这是一个布尔表达式,如果元素在列表中,结果为布尔值 True,反之为 False

students = ['林黛玉','薛宝钗','贾元春','妙玉','贾惜春','王熙凤','秦可卿','贾宝玉'
]
miaoyu_in = '妙玉' in students
print(miaoyu_in)
# 输出:Truexiangyun_in = '史湘云' in students
print(xiangyun_in)
# 输出:False

加法和乘法:

# 列表的加法
students = ['林黛玉', '薛宝钗', '贾元春', '贾探春', '史湘云', '妙玉', '贾迎春', '贾惜春', '王熙凤', '贾琏', '贾巧姐', '李纨', '秦可卿', '贾宝玉']parents = ['贾敬', '贾政', '王夫人', '贾赦', '邢夫人']meeting = students + parents# 打印 meeting 的结果,以及最终人数
print(meeting)
print('与会人数为', len(meeting), '人')
# 输出:
# ['林黛玉', '薛宝钗', '贾元春', '贾探春', '史湘云', '妙玉', '贾迎春', '贾惜春', '王熙凤', '贾琏', '贾巧姐', '李纨', '秦可卿', '贾宝玉', '贾敬', '贾政', '王夫人', '贾赦', '邢夫人']
# 与会人数为 19 人#列表的乘法
lag_behind = ['贾探春', '秦可卿', '贾惜春', '贾琏']
# 用乘法快速生成轮班表
recite_list = lag_behind * 5print(recite_list)
# 输出:['贾探春', '秦可卿', '贾惜春', '贾琏', '贾探春', '秦可卿', '贾惜春', '贾琏', '贾探春', '秦可卿', '贾惜春', '贾琏', '贾探春', '秦可卿', '贾惜春', '贾琏', '贾探春', '秦可卿', '贾惜春', '贾琏']

列表的扩展操作:

zip() 函数:它的作用是将两个长度相同的列表合并起来,相同位置的元素会被一一组对,变成一个元组。结果返回一个组合好的打包对象,需要我们再用 list() 函数转换回列表。

midterm_rank = ['妙玉','薛宝钗','贾元春','王熙凤','林黛玉','贾巧姐','史湘云','贾迎春','贾宝玉','李纨','贾探春','秦可卿','贾惜春','贾琏'
]scores = [100, 92, 77, 85, 81, 90, 100, 86, 79, 93, 91, 96, 75, 84]# 将 scores 元素从低到高排列
scores.sort()# 倒转 scores 中的排列顺序
scores.reverse()print(scores)
# 输出:[100, 100, 96, 93, 92, 91, 90, 86, 85, 84, 81, 79, 77, 75]# 用 zip() 将两个列表合并
zipped = zip(midterm_rank, scores)# 将结果转换回列表后,赋值给 zipped_rank
zipped_rank = list(zipped)# 来看看结果
print(zipped_rank)
# 输出:[('妙玉', 100), ('薛宝钗', 100), ('贾元春', 96), ('王熙凤', 93), ('林黛玉', 92), ('贾巧姐', 91), ('史湘云', 90), ('贾迎春', 86), ('贾宝玉', 85), ('李纨', 84), ('贾探春', 81), ('秦可卿', 79), ('贾惜春', 77), ('贾琏', 75)]

enumerate() 函数:“enumerate”单词本身意思是“枚举、数数”。所以对应的函数功能,就是一个一个地将列表中的元素数出来。它返回的是一个枚举对象,也需要我们用 list() 函数转换回列表。

# 枚举原排名表后,再转回列表的形式
rank_with_id = list(enumerate(midterm_rank))print(rank_with_id)
# 输出:[(0, '妙玉'), (1, '薛宝钗'), (2, '贾元春'), (3, '王熙凤'), (4, '林黛玉'), (5, '贾巧姐'), (6, '史湘云'), (7, '贾迎春'), (8, '贾宝玉'), (9, '李纨'), (10, '贾探春'), (11, '秦可卿'), (12, '贾惜春'), (13, '贾琏')]# enumerate()中这次有两个参数,一个为排名列表,一个为起始数字。
rank_with_ID = list(enumerate(midterm_rank, 1))print(rank_with_ID)
# 输出:[(1, '妙玉'), (2, '薛宝钗'), (3, '贾元春'), (4, '王熙凤'), (5, '林黛玉'), (6, '贾巧姐'), (7, '史湘云'), (8, '贾迎春'), (9, '贾宝玉'), (10, '李纨'), (11, '贾探春'), (12, '秦可卿'), (13, '贾惜春'), (14, '贾琏')]

元组:

元组和列表非常相似。不同之处在于,外观上:列表是被方括号包裹起来的,而元组是被 圆括号 包裹起来的。本质上:列表里的元素可修改,元组里的元素是 不可以“增删改” 的。

还有一个微妙的地方要注意,就是只有一个元素的元组,在格式上与列表是不同的。仅一个元素 x 的列表写成 [x], 但仅一个元素的元组要在括号内多写个逗号:(x,)

对于仅一个元素的元组,我们要特意加个逗号来声明:这是个元组。

single = (1,)
print(type(single))
# 输出:<class 'tuple'>

元组不能用于增加、修改或删除语句。

由于查询与分片操作并不会改变数据,所以我们说的两种列表元素的查询方式以及分片操作,在元组中是可用的。列表运算符,元组也都支持,用 in 查询元素是否在元组内;用 + 将两个元组叠加生成新元组;用 * 生成元素重复循环多次的新元组。

如果真的有特殊需求,需要修改元组中的元素:可以先用 list() 函数把元组转换成列表,相当于给数据“解锁”,将元素修改完毕后,再用 tuple() 函数转换回元组,相当于“重新上锁”。

students = ('林黛玉', '贾宝玉', '薛宝钗')# 用 list() 函数给数据“解锁”,生成一个相同元素的新列表
students_list = list(students)# 在新列表中修改元素
students_list[0] = '妙玉'# 两次给数据“上锁”
students = tuple(students_list)print(students)
# 输出:('妙玉', '贾宝玉', '薛宝钗')

字符串:

Python 中的字符串是使用一对英文单引号(')或英文双引号(")包裹的任意文本。无论是用单引号还是用双引号,它俩的效果都是一样的,但需要保持前后引号的统一。

使用一对三引号(''' 或 """)来包裹多行字符串,三引号包裹的字符串和普通的字符串使用上没有区别,只是三引号支持多行字符串而已。

字符串拼接:

可以使用+或者*

str1 = '烦死了'
str2 = str1 + str1 + str1
print(str2)
# 输出:烦死了烦死了烦死了str11 = '烦死了'
str22 = str11 * 3  # 相当于 str11 + str11 + str11
print(str22)
# 输出:烦死了烦死了烦死了

字符串格式化输出:

+ 来拼接字符串:

def print_intro(name, age, city):intro = '我叫' + name + ',今年 ' + str(age) + ' 岁,来自' + city + '。'print(intro)print_intro('贝壳', 18, '世界各地')
# 输出:我叫贝壳,今年 18 岁,来自世界各地。

提示:字符串类型和数字类型不能直接相加,需要用 str() 函数进行类型转换。

用字符串的格式化输出实现同样的功能:

def print_intro(name, age, city):intro = '我叫%s,今年 %d 岁,来自%s。' % (name, age, city)print(intro)print_intro('贝壳', 18, '世界各地')
# 输出:我叫贝壳,今年 18 岁,来自世界各地。

提示:如果不太确定应该用什么占位符,%s 是万能的,它会把任何数据类型转换为字符串。

字符串索引:

str = 'Hello World'
print(str[6])  # 输出:W
print(str[-5])  # 输出:W

字符串分片:

str = 'Hello World'
# 下面两个效果一样
print(str[6:])  # 输出:World
print(str[-5:])  # 输出:World
  1. 分片是半闭半开区间,即包含前面索引位置的元素,不包含后面索引位置的元素。比如:string[m:n] 获取的是字符串 string 中索引为 m 到 n-1 之间的元素(包括 m 和 n-1);
  2. 分片中前后索引的值是可以省略的,前索引省略默认为 0,后索引省略默认为序列长度。

字符串不可变性:

但字符串一旦创建后是不可改变的,这个属性和元组类似,通过索引来改变字符串中元素就会报错:

name = '张艺兴'
name[0] = '贾'
print(name)
# 报错:TypeError: 'str' does not support item assignment on line 2

字符串的相关方法:

upper():用于将字符串中的小写字母转为大写字母。

'abcd'.upper()  # 'ABCD'

lower():用于将字符串中的大写字母转为小写字母。

'ABCD'.lower()  # 'abcd'

capitalize():用于将字符串的第一个字母变成大写,其他字母变小写。首字符如果是非字母则不变,其他字母变小写。

'ABCD'.capitalize()  # 'Abcd'
'aBcD'.capitalize()  # 'Abcd'
'1abcd'.capitalize()  # '1abcd'
'1aBcD'.capitalize()  # '1abcd'

title():用于返回“标题化”的字符串——即所有单词的首字母转为大写,其余字母均为小写。注意:非字母后的第一个字母将转为大写字母。

'this is an example string'.title()   # This Is An Example String
'5g is coming'.title()  # 5G Is Coming

swapcase():用于对字符串的大小写字母进行互相转换。

'abcd'.swapcase()  # 'ABCD'
'aBcD'.swapcase()  # 'AbCd'

分割、组合与移除方法:

split():

用于通过指定分隔符对字符串进行分割。split() 方法有两个可选参数,第一个参数为分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。第二个参数为最大分割次数,默认为 -1,即不限次数。

'好 运 连 连'.split()  # ['好', '运', '连', '连']
'好 运 连 连'.split(' ')  # ['好', '运', '连', '连']
'好-运-连-连'.split('-')  # ['好', '运', '连', '连']
'好运连连'.split('运连')  # ['好', '连']
'好 运 连 连'.split(' ', 1)  # ['好', '运 连 连']

join():

用于将序列中的元素以指定的字符连接生成一个新的字符串。join() 方法接收一个序列(列表、元组、字符串等)作为参数,前面的字符串用于连接符。

# 列表
''.join(['好', '运', '连', '连'])  # 好运连连
'-'.join(['好', '运', '连', '连'])  # 好-运-连-连# 元组
'-'.join(('好', '运', '连', '连'))  # 好-运-连-连# 字符串
'-'.join('好运连连')  # 好-运-连-连

strip():

用于移除字符串开头和结尾指定的字符(默认为空字符)或字符序列。当传入一个字符串时,会将传入字符串中每个字符依次移除。

'好运连连 '.strip() #'好运连连'
'~~好运连连~~'.strip('~') #'好运连连'
'~~好运~~连连~~'.strip('~') #'好运~~连连'
'_~_好运连连_~~'.strip('~_') #'好运连连'

定位与替换方法:

count():

用于统计字符串中某个字符串出现的次数。第一个参数为要统计次数的字符串,后两个可选参数为在字符串搜索的开始与结束索引。

'aabbcccd'.count('a')  # 2
'aabbcccd'.count('ab')  # 1
'aabbcccd'.count('e')  # 0'aabbcccd'.count('a', 2, 6)  # 0
# 等同于 'bbcc'.count('a')'aabbcccd'.count('c', 2, 6)  # 2
# 等同于 'bbcc'.count('c')

find():

用于检测字符串中是否包含子字符串,如果包含子字符串返回第一次出现的索引值,否则返回 -1。第一个参数为要查找的子字符串,后两个可选参数为在字符串搜索的开始与结束索引。

'abc'.find('b')  # 1
'abcabc'.find('b')  # 1
'abcabc'.find('d')  # -1
'abcbcdabc'.find('bcd')  # 3
'abcabc'.find('b', 1, 2)  # 1
'abcabc'.find('b', 2, 3)  # -1

replace():

用于将字符串中的指定字符串替换成别的字符串。第一个参数为被替换字符串,第二个参数为替换字符串,第三个可选参数为替换的最多次数,默认为无限次。

'abcd'.replace('b', 'e')  # 'aecd'
'abbbcbd'.replace('b', 'e')  # 'aeeeced'
'abbbcbd'.replace('bb', 'e')  # 'aebcbd'
'abbbcbd'.replace('b', 'e', 2)  # 'aeebcbd'

格式化输出方法:

可以使用字符串的 format() 方法:

'我叫{},今年 {} 岁,来自{}'.format('贝壳', 18, '世界各地')
# 我叫贝壳,今年 18 岁,来自世界各地

集合:

集合(set)是一个无序的不重复元素序列。

集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。

可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或者也可以使用 set() 函数创建集合。

set1 = {1, 2, 3, 4}            # 直接使用大括号创建集合
set2 = set()      # 使用 set() 函数创建集合

创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

添加元素:

s.add( x ):将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
s.update( x ):x 可以有多个,用逗号分开。
set1={1,2,3,4}
set1.add(5)
print(set1) #{1, 2, 3, 4, 5}
set1.update({6,7}) 
print(set1) #{1, 2, 3, 4, 5, 6, 7}

移除元素:

s.remove( x ):将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
s.discard( x ):也是移除集合中的元素,且如果元素不存在,不会发生错误。
s.pop() :随机删除集合中的一个元素
set1={1,2,3,4}
set1.remove(3)
print(set1) #{1, 2, 4}
set1.discard(4)
print(set1) #{1, 2}
set1.pop()
print(set1) #{2}

计算集合元素个数:

len(s):计算集合 s 元素个数。
set1={1,2,3,4}
print(len(set1)) #4

清空集合:

s.clear():清空集合 s。
set1={1,2,3,4}
print(set1.clear()) #None

字典:

字典 是由一对大括号({})包裹着的。和列表不同的是,字典的每个元素是 键值对

字典中的  需要是 唯一的,如果字典中有两个相同的 ,Python 只会保留后面那个。而  则没有限制,可以是任意类型的,也可以有相同的值。

scores = {'林黛玉': 95,'薛宝钗': 93,'贾宝玉': 78,'林黛玉': 78
}
print(scores)
# 输出:{'林黛玉': 78, '薛宝钗': 93, '贾宝玉': 78}

字典的取值:

和列表类似,访问字典中的元素也使用方括号 []。不同的是,列表中括号内的是 索引,字典中括号内的是 键。

scores = {'林黛玉': 95,'薛宝钗': 93,'贾宝玉': 78
}
print(scores['林黛玉'])
# 输出:95

字典元素的修改/添加/删除:

修改和添加都使用 字典名[键] = 值 的方式,如果  存在于字典中,就是修改,不存在就是添加。字典元素的删除和列表元素的删除一样也是使用 del 关键字进行删除。

scores = {'林黛玉': 95,'薛宝钗': 93,'贾宝玉': 78
}# 修改
scores['林黛玉'] = 90
print(scores)
# 输出:{'林黛玉': 90, '薛宝钗': 93, '贾宝玉': 78}# 添加
scores['袭人'] = 85
print(scores)
# 输出:{'林黛玉': 90, '薛宝钗': 93, '贾宝玉': 78, '袭人': 85}# 删除
del scores['林黛玉']
print(scores)
# 输出:{'薛宝钗': 93, '贾宝玉': 78, '袭人': 85}

字典常用方法:

get():

将字典的键作为参数传入 get() 方法中,它就会帮我们查询字典中有没有这个键。如果存在的话,返回键对应的值;不存在的话,默认返回 None

students = {'林黛玉': 95,'薛宝钗': 93,'贾宝玉': 78,'袭人': 85
}
print(students.get('林黛玉'))
# 输出:95
print(students.get('张艺兴'))
# 输出:None

keys():

keys() 方法则可以获取字典中所有的 键。

students = {'林黛玉': 95,'薛宝钗': 93,'贾宝玉': 78,'袭人': 85
}
names = students.keys()
print(names)
# 输出:dict_keys(['林黛玉', '薛宝钗', '贾宝玉', '袭人'])
print(type(names))
# 输出:<class 'dict_keys'>

values():

与 keys() 方法相对应,我们可以通过 values() 方法获取字典中所有的 

students = {'林黛玉': 95,'薛宝钗': 93,'贾宝玉': 78,'袭人': 85
}
scores = students.values()
print(scores)
# 输出:dict_values([95, 93, 78, 85])
print(type(scores))
# 输出:<class 'dict_values'>
for score in scores:print(score)
# 输出:95 93 78 85

items():

除了获取所有的键、值,我们也可以通过 items() 方法,一次性获取字典中所有的 键值对 ,其中每个键值对都是一个形如 (键, 值) 的元组。items() 方法返回的也是一个特殊类型,不可索引,可遍历。

students = {'林黛玉': 95,'薛宝钗': 93,'贾宝玉': 78,'袭人': 85
}
student = students.items()
print(student)
# 输出:dict_items([('林黛玉', 95), ('薛宝钗', 93), ('贾宝玉', 78), ('袭人', 85)])
print(type(items))
# 输出:<class 'dict_items'># 以 name, score 遍历 students 中键值对
for name, score in students.items():print('{}的分数是:{}'.format(name, score))# 输出:
# 林黛玉的分数是:95
# 薛宝钗的分数是:93
# 贾宝玉的分数是:78
# 袭人的分数是:85

字典的嵌套:

列表中嵌套字典:

scores = [{'林黛玉': 95, '贾宝玉': 78},{'薛宝钗': 93, '袭人': 85}
]print(scores[0])
# 输出:{'林黛玉': 95, '贾宝玉': 78}print(scores[0]['林黛玉'])
# 输出:95

字典中嵌套列表:

students = {'第一': ['林黛玉', '贾宝玉'],'第二': ['薛宝钗', '袭人']
}print(students['第一'])
# 输出:['林黛玉', '贾宝玉']
print(students['第一'][0])
# 输出:林黛玉

字典中嵌套字典:

dictionary = {'apple': {'释义': '苹果', '词性': '名词'},'grape': {'释义': '葡萄', '词性': '名词'}
}print(dictionary['apple'])
# 输出:{'释义': '苹果', '词性': '名词'}
print(dictionary['apple']['释义'])
# 输出:苹果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/719232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汇编语言程序设计实验三 数据串传送和查表程序

实验目的和要求 1、堆栈。堆栈指示器SP和堆栈操作指令PUSH。POP。 2、段寄存器和物理地址计算。 3、查表法和查表指令XLAT。 4、数据串传送程序和数据串传送指令MOVS。STOS及重复前辍REP。 5、循环指令ROL。逻辑与指令AND和清方向位指令CLD。 6、伪操作指令DB。 实验环境…

五步法搞定 BI 业务需求梳理

五步法搞定 BI 业务需求梳理。高手就是把复杂的事情简单化&#xff0c;简单的东西重复做、认真做。 01 五步法是哪五步 第一、明确用户 五步法搞定 BI 业务需求梳理。高手就是把复杂的事情简单化&#xff0c;简单的东西重复做、认真做。 第二、明确指标 在明确需求用户的前…

LeetCode 2125.银行中的激光束数量

银行内部的防盗安全装置已经激活。给你一个下标从 0 开始的二进制字符串数组 bank &#xff0c;表示银行的平面图&#xff0c;这是一个大小为 m x n 的二维矩阵。 bank[i] 表示第 i 行的设备分布&#xff0c;由若干 ‘0’ 和若干 ‘1’ 组成。‘0’ 表示单元格是空的&#xff0…

NERF论文笔记

NeRF:Representing Scene as Neural Radiance Fields for View Synthesis 笔记 摘要 实现了一个任意视角视图生成算法&#xff1a;输入稀疏的场景图像&#xff0c;通过优化连续的Volumetric场景函数实现&#xff1b;用全连接深度网络表达场景&#xff0c;输入是一个连续的5维…

Unity(第二十部)效果 粒子、线条和拖尾

1、粒子系统 粒子系统介绍 Unity 粒子系统是 Unity 引擎中用于创建和控制粒子效果的工具。它可以模拟各种自然现象&#xff0c;如火焰、烟雾、雨滴等&#xff0c;也可以用于创建特效&#xff0c;如魔法光芒、爆炸效果等。 粒子系统组成 在 Unity 中&#xff0c;粒子系统由发射…

用 Dockerfile为镜像添加SSH服务

1、基础镜像ubuntu:18.04 2、替换为国内的安装源 3、安装openssh-server 4、允许root用户远程登陆 5、暴露端口22 6、服务开机自启动 1.创建目录 [rootopenEuler-node1 db]# mkdir sshd_ubuntu 2.创建 Dockerfile、 run.sh 、authorized_keys、vim aliyun.list 文件 [rootop…

网盘拉新如何对接?盘点最靠谱的一手渠道平台

2024网盘行业再次重燃战火。字节旗下产品头条搜索极速版APP、悟空浏览器APP推出对应的网盘功能&#xff0c;刚刚开放了拉新推广&#xff0c;现在是一个不能错过新项目的好时机。 如果你对网盘拉新推广充满热情&#xff0c;千万不要错过星子助推联合字节推出的网盘项目机会。小…

python自动化之如何利用allure生成测试报告

Allure测试报告框架帮助你轻松实现”高大上”报告展示。本文通过示例演示如何从0到1集成Allure测试框架。重点展示了如何将Allure集成到已有的自动化测试工程中、以及如何实现报表的优化展示。Allure非常强大&#xff0c;支持多种语言多种测试框架&#xff0c;无论是Java/Pytho…

成功的交易没有对错,只有逻辑

大部分人将交易失败归咎于心态&#xff0c;但其实我们是否认真思考过自己的基本功是否扎实呢&#xff1f;这篇文章将引导你换个角度看待交易&#xff0c;让你明白自己应该努力的方向。 曾经&#xff0c;你或许认为资金体量小、信息不对称、技术不过关、心态不过硬是阻碍交易发展…

TikTok外贸系统的核心功能及其源代码分享!

随着全球化的不断推进&#xff0c;外贸业务成为越来越多企业的增长动力&#xff0c;TikTok作为一个全球性的社交媒体平台&#xff0c;其用户基数庞大、活跃度高&#xff0c;为外贸业务提供了无限的商机。 为了帮助企业在TikTok上更好地开展外贸业务&#xff0c;TikTok外贸系统…

【DDD】学习笔记-聚合和聚合根:怎样设计聚合?

今天我们来学习聚合&#xff08;Aggregate&#xff09;和聚合根&#xff08;AggregateRoot&#xff09;。 我们先回顾下上一讲&#xff0c;在事件风暴中&#xff0c;我们会根据一些业务操作和行为找出实体&#xff08;Entity&#xff09;或值对象&#xff08;ValueObject&…

47、WEB攻防——通用漏洞Java反序列化EXP生成数据提取组件安全

文章目录 序列化和反序列化的概念&#xff1a; 序列化&#xff1a;把java对象转换成字节流的过程&#xff1b;反序列化&#xff1a;把字节流恢复为java对象的过程。 对象的序列化主要有两种用途&#xff1a; 把对象的字节流永久的保存在硬盘上&#xff0c;通常存放在一个文件…

网络分析工具简介及汇总

文章目录 一、网络分析工具软件是什么二、网络分析工具软件作用三、常见的网络分析工具 一、网络分析工具软件是什么 网络分析工具软件是一种用于捕获、分析和解释网络数据包的工具。它们可以直接从网络接口上捕获数据包&#xff0c;并提供详细的信息和统计数据&#xff0c;以帮…

xss.haozi.me:0x0B

<svg><script>(1)</script>

洛谷 B3620 x 进制转 10 进制

题目描述 给一个小整数 x 和一个 x 进制的数 S。将 S 转为 10 进制数。对于超过十进制的数码&#xff0c;用 A&#xff0c;B&#xff0c;…… 表示。 输入格式 第一行一个整数 x; 第二行一个字符串 S。 输出格式 输出仅包含一个整数&#xff0c;表示答案。 输入输出样例…

【JavaScript】面试手撕浅拷贝

【JavaScript】面试手撕浅拷贝 引入 浅拷贝和深拷贝应该是面试时非常常见的问题了&#xff0c;为了能将这两者说清楚&#xff0c;于是打算用两篇文章分别解释下深浅拷贝。 PS: 我第一次听到拷贝这个词&#xff0c;有种莫名的熟悉感&#xff0c;感觉跟某个英文很相似&#xff…

Linux文本处理三剑客:awk(内置函数详解笔记)

Linux系统中&#xff0c;AWK 是一个非常强大的文本处理工具&#xff0c;它的内置函数使得对文本数据进行处理更加高效和便捷。 本文将介绍 AWK 内置函数的几种主要类型&#xff1a; 算数函数字符串函数时间函数位操作函数其他常用函数 我们将使用一个示例文本文件来演示这些函…

局域网如何搭建服务器?

随着网络的普及和应用场景的不断拓展&#xff0c;局域网搭建服务器逐渐成为大家关注的话题。在日常生活和工作中&#xff0c;我们经常需要通过局域网和互联网进行文件共享、资源访问等操作&#xff0c;而搭建服务器则是实现这些功能的重要手段之一。本文将针对局域网搭建服务器…

SwiftUI 如何在运行时从底层动态获取任何 NSObject 对象实例

概览 众所周知,SwiftUI 的推出极大地方便了我们这些秃头码农们搭建 App 界面。不过,有时我们仍然需要和底层的 UIKit 对象打交道。比如:用 SwiftUI 未暴露出对象的接口改变视图的行为或外观。 从上图可以看到,我们 SwiftUI 代码并没有设置视图的背景色,那么它是怎么变成绿…

vscode 本地/远程添加python解释器

文章目录 1. 背景2. 增加python解释器 1. 背景 我们在使用 vscode 去远程调试代码时&#xff0c;如果环境存在多个 Python 版本&#xff08;如用 conda 管理&#xff09;&#xff0c;没有选择正确的 Python 解释器会导致少包、库不适配等各种问题 2. 增加python解释器 windo…