Python使用中常见问题总结(三)

尊敬的读者您好:笔者很高兴自己的文章能被阅读,但原创与编辑均不易,所以转载请必须注明本文出处并附上本文地址超链接以及博主博客地址:https://blog.csdn.net/vensmallzeng。若觉得本文对您有益处还请帮忙点个赞鼓励一下,笔者在此感谢每一位读者,如需联系笔者,请记下邮箱:[email protected],谢谢合作!

一、字典的常见用法

1、创建字典

① 创建非空字典

dict = {"name": "贺增增" , "idol": "许嵩", "time": "13"}

② 创建空字典     

dict = {}

2、对字典中元素做修改

① 对key为"time"的值进行修改,若字典中若没有该key,则创建该键值;

dict["time"] = 100

② 对key为"idol"的值进行删除

dict.pop("idol") 

3、字典的遍历

① 默认按键名进行遍历,得到以键形式的输出

for a in dict:
    print(a)

② 和①的结果一样,得到以键形式的输出

for b in dict.keys():
    print(b)

③ 按值进行遍历,得到以值形式的输出

for b in dict.values():     
      print(b)

④ 按键值对进行遍历,得到以元组形式的输出

for c in dict.items():
      print(c)

⑤ 按键值对进行遍历,得到以键名和键值的输出

for k,v in dict.items():      
      print(k,v)

二、List的常见用法

1、创建list

① 创建非空list

list = ["贺增增", "许嵩", "许嵩N代弟子"]

② 创建空字典     

list = []

2、对字典中元素做修改

① 为字典增加元素;

#方式一 append() 追加单个元素到list的尾部
music = ["如果当时", "灰色头像", "如约而至"]
list.append(music)
print(list)
output:["贺增增", "许嵩", "许嵩N代弟子", [“如果当时”, "灰色头像", "如约而至"]]

#方式二 extend() 将一个列表中每个元素分别添加到另一个列表中
music = ["如果当时", "灰色头像", "如约而至"]
list.extend(music)
print(list)
output:["贺增增", "许嵩", "许嵩N代弟子", "如果当时", "灰色头像", "如约而至"]

#方式三 insert() 将一个元素插入到列表中
list.insert(1,'薛之谦')
print(list)
output:["贺增增", "薛之谦", "许嵩", "许嵩N代弟子"]

#方式四 + 加号,将两个list相加,会返回到一个新的list对象。
album = [”梦游计“, ”青年晚报“]
list_new = list + album
print(list_new)
output:["贺增增", "薛之谦", "许嵩", "许嵩N代弟子", ”梦游计“, ”青年晚报“]

注:方法四与前三种方法的区别,前面三种方法(append, extend, insert)可对列表增加元素的操作,它们没有返回值,是直接修改了原数据对象。 而方法四是将两个list相加,需要创建新的list对象,从而需要消耗额外的内存,特别是当list较大时,尽量不要使用“+”来添加list,而应该尽可能使用List的append()方法。 

② 对list的值进行删除

#方式一 remove() 删除指定位置的元素
list.remove(2)
print(list)
output:["贺增增", "许嵩N代弟子"]

#方式二 del list[*] 删除指定元素
del list[0]
print(list)
output:["许嵩", "许嵩N代弟子"]

#方式三 pop(1) 弹出指定倒数位置的元素(默认最后一个元素)
list.pop()
print(list)
output:["贺增增", "许嵩"]

3、列表的遍历

#方法一
for i in list:
    print ("序号:%s   值:%s" % (list.index(i) + 1, i))

#方法二
for i in range(len(list)):
    print ("序号:%s   值:%s" % (i + 1, list[i]))

#方法三
for i, val in enumerate(list):
    print ("序号:%s   值:%s" % (i + 1, val))

#方法四
for i, val in enumerate(list, 2):
    print ("序号:%s   值:%s" % (i + 1, val))

三、txt文本的常见读取方式

1、按行读取(with读取)

with open(filename, 'r', encoding='UTF-8') as f:
     lines = f.readlines()

2、按行读取(普通读取)

# 打开文件,循环读取

lines = open(filename, 'r')
for line in lines:
	print(line)

2、按列读取(df方式)

# 导入数据
df = pd.read_csv("./data/all_available_features.txt", sep='\001', header=0)

# 将数据按列读取
df.columns = ["unionid", "gender", "big_room", "big_room_ratio", "single_room", "single_room_ratio",
                  "standard_room", "standard_room_ratio", "family_room", "family_room_ratio", "superior_room",
                  "superior_room_ratio", "other_room", "other_room_ratio", "all_room", "summer_holiday",
                  "summer_holiday_ratio", "winter_holiday", "winter_holiday_ratio", "minor_holiday",
                  "minor_holiday_ratio", "weekend_holiday", "weekend_holiday_ratio", "other_holiday",
                  "other_holiday_ratio", "mem_basic", "mem_outgoing", "mem_marriage", "mem_education",
                  "mem_certification", "mem_stayArea", "mem_stayCity", "mem_age", "mem_sex", "mem_assets",
                  "mem_constellation", "mem_social_stratum", "mem_area", "mem_city", "mem_career",
                  "mem_birthday", "mem_mail", "label"]

# 以ndarray格式按行存储,X的一行代表一个样本
X = df[["gender", "big_room", "big_room_ratio", "single_room", "single_room_ratio",
            "standard_room", "standard_room_ratio", "family_room", "family_room_ratio", "superior_room",
            "superior_room_ratio", "other_room", "other_room_ratio", "all_room", "summer_holiday",
            "summer_holiday_ratio", "winter_holiday", "winter_holiday_ratio", "minor_holiday",
            "minor_holiday_ratio", "weekend_holiday", "weekend_holiday_ratio", "other_holiday",
            "other_holiday_ratio", "mem_basic", "mem_outgoing", "mem_marriage", "mem_education",
            "mem_certification", "mem_stayArea", "mem_stayCity", "mem_age", "mem_sex", "mem_assets",
            "mem_constellation", "mem_social_stratum", "mem_area", "mem_city", "mem_career",
            "mem_birthday", "mem_mail"]]

X = np.array(X)

四、时间间隔的常见计算方式

1、调用datetime库进行计算时间间隔

def compare_time(time1, time2):
    d1 = datetime.datetime.strptime(time1, '%Y-%m-%d')
    d2 = datetime.datetime.strptime(time2, '%Y-%m-%d')
    delta = d1 - d2
    print("days is:{}".format(delta.days))

    if delta.days >= 0:
        return delta.days
    else:
        return -1

2、对只包含时间元素的list进行排序

#list_Data将所有的time(如:2015-10-01)存储起来
list_Data.append(time)
#对只包含时间元素的list_Data进行升序排序
sorted(list_Data, key=lambda date: datetime.datetime.strptime(date, '%Y-%m-%d').timestamp())


 

日积月累,与君共进,增增小结,未完待续。

发布了152 篇原创文章 · 获赞 147 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/Vensmallzeng/article/details/103973293