07.python字典,split,join

本文详细介绍了Python中字典的基本操作,包括遍历字典的键与值,以及如何使用split和strip方法处理字符串。同时,展示了如何打印当前目录下所有.c文件的名称,提供了实用的代码示例。

字典

#coding:utf-8


#定义一个字典
mydict = {"name":"gailun", "age":18}


for key in mydict.keys():
    print "key =" +key
    print "value=" + str(mydict[key])

输出

key=age
value=18
key=name
value=gailun

split先用”.“进行分割,再用“,“进行分割,word.strip()是去掉两端的空格

#coding:utf-8

str1 = "nihao, shijie. hello world. hihao lilei, nihao hanmeimei."

for content in str1.split("."):
    #content表示的是一句话
    for word in content.split(","):
        #word是一个单词
        word = word.strip()
        print word

输出

nihao
shijie
hello world
hihao lilei
nihao hanmeimei.

打印当前目录全部.c的文件名

split(".")[-1]是找出用”.“分割以后倒数的第一个元素

#coding:utf-8
import os

str1 = "nihao, shijie. hello world. hihao lilei, nihao hanmeimei."

for content in str1.split("."):
    #content表示的是一句话
    for word in content.split(","):
        #word是一个单词
        word = word.strip()
        print word


print "------------------"
#打印当前目录的全部.c文件
#相当于ls
for filename in os.listdir("./"):
    if filename.split(".")[-1] == "c":
        print filename

join是用某个符号将字符或者字符串连接起来

#coding:utf-8
import random
import string

data = string.letters + string.digits

'''
#axF8,return随机4个字母和数字,用""拼接起来
def get_sub_key(num):
    mystr = random.sample(data, num)  #---> ['a', 'x', 'F', '8']
    ret_str = "".join(mystr)
    return ret_str


#axF8-assd-321s-dsaD-dsaf-DSA5 return多组4个字母和数字,用"-"拼接起来
def get_key(count, num):
    cd_key = []

    for sub_key in range(count):
        cd_key.append(get_sub_key(num))

    #cd_key = ['axF8', 'assd', '1223' ...]

    ret_key = "-".join(cd_key)

    return ret_key
'''

#代码简写
def get_sub_key(num):
    return "".join(random.sample(data, num))

#代码简写
def get_key(count , num):
    return "-".join([get_sub_key(num) for _ in range(count)])



if __name__ == "__main__":
    for i in range(10):
        print get_key(6, 4)

 

```markdown ## 题目重述 利用字典统计投票情况。第一小队队员序号为1~5,第二小队为6~10。输入一个由逗号分隔的得票序列,要求统计每个队员的得票数,并输出两个小队中**没有获得任何票数的队员序号**,每队一行,按升序排列,空格分隔。 ## 给出答案(答案为带注释的代码块) ```python # 读取输入并分割为票数列表 vote_input = input().strip() votes = list(map(int, vote_input.split(','))) # 初始化字典:1~10每位队员初始票数为0 vote_count = {i: 0 for i in range(1, 11)} # 遍历得票列表,累计每张票 for v in votes: if v in vote_count: vote_count[v] += 1 # 获取第一小队和第二小队未得票的队员 team1_missing = [i for i in range(1, 6) if vote_count[i] == 0] team2_missing = [i for i in range(6, 11) if vote_count[i] == 0] # 输出结果,空格分隔 print(' '.join(map(str, team1_missing))) print(' '.join(map(str, team2_missing))) ``` ## 代码解析 1. `input().split(',')`:接收输入并按逗号切分; 2. `map(int, ...)`:将字符串转为整数; 3. `{i: 0 for i in range(1,11)}`:使用字典推导式初始化所有队员票数为0; 4. 循环累加得票:遍历投票列表,更新对应键的值; 5. 列表推导式筛选 `vote_count[i] == 0` 的队员; 6. `join` 格式化输出。 ## 知识点(列出该代码中遇到的知识点) - **字典的创建与访问**:使用 `{key: value}` 存储键值对,可通过 $O(1)$ 时间访问指定元素。 - **字典推导式**:语法为 `{k: v for k, v in iterable}`,可快速构造字典。 - **计数统计逻辑**:通过初始化+循环累加实现频次统计,适用于投票、频率等场景。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值