2019-12-21(98)

import os
def data_reader(func):
    def file_list(path):
        if os.path.exists(path):
            with open(path) as fp:
                content=fp.readlines()
            func(content)
    return file_list

@data_reader
def print_list(l):
    for i in l:
        print(i)
       
print_list("d:\\2019\\1.txt")

157、将所有的字符串变化为后一个字符串,比如“a”变成b,"z"编程A

s = "aAsmr3idd4bgs7Dlsf9eAF"
s_new=""
for i in s:
    if i>="a" and i<="y":
        s_new+=chr(ord(i)+1)
    elif i>="A" and i<="Y":
        s_new+=chr(ord(i)+1)
    elif i=="z":
        s_new+="A"
    else:
        s_new+=i
print(s_new)

158、删除最开始一个字母、最后一个字母和中间的2个字母dd

s = "aAsmr3idd4bgs7Dlsf9eAF"
s_list=list(s)
s_list.remove(s[0])
s_list.remove(s[-1])
s_list.remove("d")
s_list.remove("d")
print("".join(s_list))

159、“ksljj!@kkk122$ (sfsf*kjk<12abd/kk}XYZ”,以字符串中所有相邻的字母整体为列表元素,生成一个列表?

s="ksljj!@kkk122$ (sfsf*kjk<12abd/kk}XYZ"
for i in s:
    if not i.isalpha():
        s=s.replace(i," ")
print(s.split())

160、构造一个字典,key为9,7,5,3,1,value为一个包含两位小数的浮点数,且返回所有key、value项的和;

import random
d={9,7,5,3,1}
d={}
for i in range(9,0,-2):
    d[i]=round(random.random(),2)
print(d)

result=0
for k,v in d.items():
    result+=(k+v)
print(result)

161、求10000以内所有是素数且是闰年的数的和?

import math
def is_prime(num):
    if num==1:
        return False
    if num==2:
        return True
    for i in range(2,int(math.sqrt(num))+1):
        if num%i==0:
            return False
    return True
   
def is_leap_year(year):
    if (year%4==0 and year%100!=0) or year%400==0:
        return True
    else:
        return False
result=[]
sum=0
for i in range(10000):
    if is_prime(i) and is_leap_year(i):
        result.append(i)
for i in result:
    sum+=i
print("既是素数又是闰年的数是:",result)
print("这些数的和是:",sum)

162、定义一个函数,形参包含字典参数、默认参数,返回所有传入参数组成字符串;

def func(s1="gloryroad",**kwargs):
    result=""
    result+=s1
    for k,v in kwargs.items():
        result+=(str(k)+str(v))
    return result

print(func(name="cc",age=18))

163、一个字典key是人名、value是年龄,找出其中年龄最大的人

d={"cc":18,"zz":20,"bb":30,"mm":10}
max_age=max(d.values())
for k,v in d.items():
    if v==max_age:
        print("年龄最大的是%s" %k)
       
#164、定义函数,用户输入n个字符串,输出排好序的字符串
def func():
    s=input("请输入若干字符串,以逗号分隔:")
    s_list=s.split(",")
    return sorted(s_list)

print(func())

165、一个列表的元素均是字符串,求其中长度最小的字符串

lst=["python","java","javascript"]
min_len_word=lst[0]
for i in lst:
    if len(i)<len(min_len_word):
        min_len_word=i
print("长度最小的字符串是%s,长度是%s" %(min_len_word,len(min_len_word)))
06-08
代码如下: ```scala import org.apache.spark.{SparkConf, SparkContext} object ECommerceAnalysis { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("ECommerceAnalysis").setMaster("local[*]") val sc = new SparkContext(conf) // 读取数据 val cityInfo = sc.textFile("city_info.txt") val productInfo = sc.textFile("product_info.txt") val userVisitAction = sc.textFile("user_visit_action.txt") // 1. 统计最受欢迎的品类,先排序点击-再是订单-最后是支付 val categoryCount = userVisitAction.flatMap(line => { val fields = line.split("\t") if (fields(6) != "-1") { // 点击 List((fields(6), (1, 0, 0))) } else if (fields(8) != "null") { // 订单 val orderIds = fields(8).split(",") orderIds.map(orderId => (orderId, (0, 1, 0))) } else if (fields(10) != "null") { // 支付 val paymentIds = fields(10).split(",") paymentIds.map(paymentId => (paymentId, (0, 0, 1))) } else { Nil } }).reduceByKey((x, y) => (x._1 + y._1, x._2 + y._2, x._3 + y._3)) .map{case (categoryId, (clickCount, orderCount, paymentCount)) => (clickCount, orderCount, paymentCount, categoryId) }.sortBy(x => (x._1, x._2, x._3), false) .take(10) categoryCount.foreach{case (clickCount, orderCount, paymentCount, categoryId) => println(s"Category $categoryId: ClickCount: $clickCount, OrderCount: $orderCount, PaymentCount: $paymentCount") } // 2. 统计页面跳转率 val pageJumpCount = userVisitAction.map(line => { val fields = line.split("\t") val pageId = fields(5).toInt val sessionId = fields(2) val actionTime = fields(4) val actionType = fields(6).toInt (sessionId, (pageId, actionTime, actionType)) }).groupByKey().flatMap{case (sessionId, iter) => val actions = iter.toList.sortBy(_._2) val pageJumpActions = actions.zip(actions.tail) .filter{case (action1, action2) => action1._3 == 0 && action2._3 == 1} pageJumpActions.map{case ((pageId1, time1, _), (pageId2, time2, _)) => ((pageId1, pageId2), 1) } }.reduceByKey(_ + _) val pageVisitCount = userVisitAction.map(line => { val fields = line.split("\t") val pageId = fields(5).toInt val sessionId = fields(2) (sessionId, pageId) }).distinct().groupByKey().map{case (sessionId, iter) => val pageIds = iter.toList.sortBy(x => x) val pageVisitPairs = pageIds.zip(pageIds.tail) pageVisitPairs.map(pair => (pair, 1)) }.flatMap(x => x).reduceByKey(_ + _) val pageJumpRate = pageJumpCount.join(pageVisitCount).map{case ((pageId1, pageId2), (jumpCount, visitCount)) => (pageId1, (pageId2, jumpCount.toDouble / visitCount)) }.groupByKey().map{case (pageId, iter) => val pageJumpInfo = iter.toList.sortBy(-_._2).take(10) (pageId, pageJumpInfo) } pageJumpRate.foreach{case (pageId, pageJumpInfo) => println(s"Page $pageId: ${pageJumpInfo.mkString(", ")}") } // 3. 不同区域内的热门商品Top3 val cityProductCount = userVisitAction.flatMap(line => { val fields = line.split("\t") val cityId = fields(3) val productId = fields(6) if (productId != "-1") { List(((cityId, productId), 1)) } else { Nil } }).reduceByKey(_ + _) val cityTop3Product = cityProductCount.map{case ((cityId, productId), count) => (cityId, (productId, count)) }.groupByKey().map{case (cityId, iter) => val top3Product = iter.toList.sortBy(-_._2).take(3) (cityId, top3Product) } val cityMap = cityInfo.map(line => { val fields = line.split(" ") (fields(0), fields(1)) }).collectAsMap() cityTop3Product.map{case (cityId, top3Product) => val cityName = cityMap.getOrElse(cityId, "Unknown") val top3ProductStr = top3Product.map{case (productId, count) => s"$productId:${count}" }.mkString(", ") (cityName, top3ProductStr) }.foreach{case (cityName, top3ProductStr) => println(s"$cityName: $top3ProductStr") } // 4. 自定义需求 // 按小时统计访问数 val hourVisitCount = userVisitAction.map(line => { val fields = line.split("\t") val timestamp = fields(4) val hour = timestamp.substring(11, 13) (hour, 1) }).reduceByKey(_ + _) hourVisitCount.sortByKey().foreach{case (hour, count) => println(s"Hour $hour: $count") } sc.stop() } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值