【问题标题】:How to write this code in one or two line?如何在一两行中编写此代码?
【发布时间】:2020-10-02 16:04:54
【问题描述】:

我想将这段代码写在一行或最多两行...

输入:https://youtu.be/hNUtnu14wzg

所需输出:hNUtnu14wzg

输入:https://www.youtube.com/watch?v=/hNUtnu14wzg

所需输出:hNUtnu14wzg

x=str(input())[::-1]
videoID=[]
for i in x:
    if i=="/" or i=="=":
        break
    else:
        videoID.append(i)
        
print(''.join(videoID)[::-1])

【问题讨论】:

  • 我对此投了反对票,因为:社区准则规定,不允许在没有任何正当理由的情况下要求压缩代码。
  • 您考虑过使用regular expression吗?
  • input.split(r'/')[-1]
  • @YossiLevi 这里不需要原始字符串。
  • 对不起,没明白你的意思

标签: python python-3.x loops if-statement


【解决方案1】:
videoID = [i for i in x if i != "/" and i != "="]

但是对于您提供的 youtube 网址,您可以这样做:

url = 'https://youtu.be/hNUtnu14wzg'
video_id = url.rsplit('/', 1)[-1] # video_id = 'hNUtnu14wzg'

url = 'https://www.youtube.com/watch?v=hNUtnu14wzg'
video_id = url.rsplit('/watch?v=', 1)[-1] # video_id = 'hNUtnu14wzg'

【讨论】:

  • 谢谢你的回答兄弟.... if else语句如何写在一行?
  • value = "foo" if x == 1 else "bar"
【解决方案2】:
print(m_in1.split(r'/')[-1] if "/" in m_in else m_in)

将在/ 的最后出现之后打印子字符串,如果该字符不存在,则打印整个字符串。

不带斜线的示例

m_in1 = "something without any slash"
print(m_in1.split(r'/')[-1] if "/" in m_in1 else m_in1)

输出:

something without any slash

斜线示例

m_in2 = " https://www.youtube.com/watch?v=/hNUtnu14wzg"
print(m_in2.split(r'/')[-1] if "/" in m_in2 else m_in2)

输出:

hNUtnu14wzg

【讨论】:

  • 谢谢你的好意,兄弟……谢谢你!
猜你喜欢
  • 1970-01-01
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 2017-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多