Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何连接两个独立的字符串_Python_Join_Web Scraping_Formatting - Fatal编程技术网

Python 如何连接两个独立的字符串

Python 如何连接两个独立的字符串,python,join,web-scraping,formatting,Python,Join,Web Scraping,Formatting,我需要连接两条线 第一个字符串=日期: (MegaMillions2019 = (date.strftime("%m%d%Y"))) 第二个字符串=结果: (results = '\n'.join([', '.join(parsed[i]) for i in range(len(parsed))]) (results.replace(' ',''))) 这些字符串需要在下面显示的同一行上 代码: 输出日期: 01222019 01182019 01152019 01112019 010820

我需要连接两条线

第一个字符串=日期:

(MegaMillions2019 = (date.strftime("%m%d%Y")))
第二个字符串=结果:

(results = '\n'.join([', '.join(parsed[i]) for i in range(len(parsed))])
(results.replace(' ','')))
这些字符串需要在下面显示的同一行上

代码:

输出日期:

01222019
01182019
01152019
01112019
01082019
01042019
01012019
结果:

8,16,30,38,61,10
4,15,37,59,64,16
2,43,48,62,64,24
29,52,58,60,62,7
4,5,31,62,69,20
13,26,29,38,64,5
21,29,35,54,60,15
我希望他们像这样结合在一起:

01222019,8,16,30,38,61,10
01182019,4,15,37,59,64,16
01152019,2,43,48,62,64,24
01112019,29,52,58,60,62,7
01082019,4,5,31,62,69,20
01042019,13,26,29,38,64,5
01012019,21,29,35,54,60,15

您可以执行以下操作

MegaMillions2019 =[]
for date in date:
    date2 = (date.get_text())
    date = (datetime.strptime(date2, '%b %d, %Y'))
    MegaMillions2019.append(date.strftime("%m%d%Y")))
...

for mm, r in zip(MegaMillions2019, results.replace(' ','')): 
    print (f"{mm}, {r}")

保留两个列表
l1
l2
,在第一个循环中的
l1
中追加日期,在第二个循环中的
l2
中追加结果列表

例如:

l1=[012220190122202901222013]
l2=[[3,4,5],[1,2,3],[4,5,5]]

然后,您可以按如下方式压缩这两个列表:

new_list = [",".join(map(str, (list(a) + b))) for a, b in zip(s1, s2)]
现在您可以打印新的_列表,该列表将有逗号分隔的结果

dates = []
for date in date:
    ...
    dates.append(str(MegaMillions2019))

...

parsed = []
joined = []
for i in range(int(len(data)/7)):
    j = i*7
    parsed.append(data[j:j+6])
    parsedline = [', '.join(parsed[j]) for j in range(len(parsed))][i]
    joined.append(dates[i]+', '+ parsedline)

results = '\n'.join(joined)
print(results.replace(' ',''))
演示:

输出样本:

03292019,5,14,15,62,66,3
03262019,4,14,22,43,58,9

使用单独的列表存储日期,并使用打印元素,如果列表中的任何元素缺失,则将使用
None
填充,而不是缺失元素:

制作一个迭代器,聚合来自每个ITerable的元素。 如果iterables的长度不均匀,则会填充缺少的值 具有填充值。迭代将继续,直到找到最长的iterable 筋疲力尽

因此

import requests
from bs4 import BeautifulSoup
from datetime import datetime

response = requests.get('https://www.lotterycorner.com/mi/mega-millions/2019')
soup = BeautifulSoup(response.text, 'html.parser')
date = soup.find_all("td", {"class":"win-nbr-date col-sm-3 col-xs-4"})
megaList = []                                    # empty list for dates
for date in date:
    date2 = (date.get_text())
    date = (datetime.strptime(date2, '%b %d, %Y'))
    MegaMillions2019 = (date.strftime("%m%d%Y"))
    megaList.append(MegaMillions2019)

data = []
for ultag in soup.find_all("ul",{"class":"nbr-grp"}):
    for litag in ultag.find_all('li'):
        results = (litag.get_text().replace(' ','').replace('MegaBall',''))
        data.append(results)

parsed = []
for i in range(int(len(data)/7)):
    j = i*7
    parsed.append(data[j:j+6])

results = [', '.join(parsed[i]) for i in range(len(parsed))]
results = [i.replace(' ','') for i in results]     # remove space from each elem in results

for mg, res in zip_longest(megaList, results):
print(mg, res, sep =',')
03292019,5,14,15,62,66,3
03262019,4,14,22,43,58,9
.
.
01252019,8,16,30,38,61,10
01222019,4,15,37,59,64,16
01182019,2,43,48,62,64,24
.
.
01042019,21,29,35,54,60,15
01012019,34,44,57,62,70,14
输出

import requests
from bs4 import BeautifulSoup
from datetime import datetime

response = requests.get('https://www.lotterycorner.com/mi/mega-millions/2019')
soup = BeautifulSoup(response.text, 'html.parser')
date = soup.find_all("td", {"class":"win-nbr-date col-sm-3 col-xs-4"})
megaList = []                                    # empty list for dates
for date in date:
    date2 = (date.get_text())
    date = (datetime.strptime(date2, '%b %d, %Y'))
    MegaMillions2019 = (date.strftime("%m%d%Y"))
    megaList.append(MegaMillions2019)

data = []
for ultag in soup.find_all("ul",{"class":"nbr-grp"}):
    for litag in ultag.find_all('li'):
        results = (litag.get_text().replace(' ','').replace('MegaBall',''))
        data.append(results)

parsed = []
for i in range(int(len(data)/7)):
    j = i*7
    parsed.append(data[j:j+6])

results = [', '.join(parsed[i]) for i in range(len(parsed))]
results = [i.replace(' ','') for i in results]     # remove space from each elem in results

for mg, res in zip_longest(megaList, results):
print(mg, res, sep =',')
03292019,5,14,15,62,66,3
03262019,4,14,22,43,58,9
.
.
01252019,8,16,30,38,61,10
01222019,4,15,37,59,64,16
01182019,2,43,48,62,64,24
.
.
01042019,21,29,35,54,60,15
01012019,34,44,57,62,70,14

您当前获得的输出是什么?是否将它们一起添加到列表中?或者压缩它们?你可以使用zip。我当前得到的输出是打印在结果顶部的日期。不,不起作用,再次查找
megamillion2019
。不,它仍然不会。你遗漏了什么,请在OP中查找
results
。这是一个逗号分隔的字符串。打印(megamillion2019)在第14行,把它从演示中删除,你是说?完成。运行该程序时,您会将日期堆叠在日期/结果字符串的顶部。谢谢大家的帮助。请再试一次。