我是Python的新手,并且已经使用了几个星期.我有一个字符串列表,并希望删除每个字符串的前四个和后四个字符.或者,删除特定字符模式(不仅仅是特定字符).
我一直在浏览档案,但似乎没有找到与此相符的问题.我发现的大多数解决方案更适合删除特定字符.
这是我正在使用的字符串列表:
sites=['www.hattrick.com', 'www.google.com', 'www.wampum.net', 'www.newcom.com']
Run Code Online (Sandbox Code Playgroud)
我想要做的是隔离域名并获得
[hattrick,google,wampum,newcom]
这个问题不是关于从URL中隔离域名(我已经看到了有关它的问题),而是基于位置或模式编辑列表中字符串中的特定字符.
到目前为止,我已经尝试过.split,.translate,.strip,但这些似乎不适合我要做的事情,因为它们要么删除太多与搜索匹配的字符,要么不适合识别特定模式/字符分组,或不能使用字符串中字符的位置.
非常感谢任何问题和建议,如果我以错误的方式提出这个问题,我会道歉.
我刚刚遇到以下python代码,这让我有点困惑:
res = self.result[::-1].encode('hex')
Run Code Online (Sandbox Code Playgroud)
编码内容非常清楚,应该表示为十六进制值.然而,这个self.result [:: - 1]是什么意思,特别是冒号?
Numpy试探性教程表明这a[ : :-1]是相反的a.有人可以解释我们是如何到达那里的吗?
我理解这a[:]意味着每个元素a(轴= 0).接下来:应该表示从我的理解中跳过(或句点)的元素数量.
我只是一个谦虚的蚱grass编码,并且有一个简单的问题。
让:
x = ['this','is','a','list']
Run Code Online (Sandbox Code Playgroud)
怎么来的:
x[100:101]
Run Code Online (Sandbox Code Playgroud)
输出一个空列表,如预期的那样:
x[100]
Run Code Online (Sandbox Code Playgroud)
是一个错误吗?同上字符串,请,谢谢。
我很惊讶地读到这里
和
start参数step默认为None
因为它还说:
Run Code Online (Sandbox Code Playgroud)slice(start, stop, step=1)返回一个切片对象,表示由 range(start, stop, step) 指定的索引集。
step所以我期望参数的默认参数值为1。
我知道slice(a, b, None) == slice(a, b, 1)返回False,但我很好奇是否slice(a, b, None)总是返回与 相同的切片slice(a, b, 1),或者是否有一些我无法想到的示例,它们将返回不同的切片。
我在有关切片的大量帖子中找不到任何有关此内容的信息
我想转换10000000C9ABCDEF成10:00:00:00:c9:ab:cd:ef
这是必需的,因为10000000C9ABCDEF格式是我登录存储阵列时看到HBA或主机胸部适配器的方式.但SAN交换机理解10:00:00:00:c9:ab:cd:ef符号.
我只能完成以下任务:
#script to convert WWNs to lowercase and add the :.
def wwn_convert():
while True:
wwn = (input('Enter the WWN or q to quit- '))
list_wwn = list(wwn)
list_wwn = [x.lower() for x in list_wwn]
lower_wwn = ''.join(list_wwn)
print(lower_wwn)
if wwn == 'q':
break
wwn_convert()
Run Code Online (Sandbox Code Playgroud)
我试过了':'.join,但是:在每个角色之后插入,所以我得到了1:0:0:0:0:0:0:0:c:9:a:b:c:d:e:f
我想要.join经历一个循环,我可以说这样的东西for i in range (0, 15, 2),它插入:后两个字符,但不太确定如何去做.(很好,Python让我以2步或任何我想要的数字循环.)
另外,如果有人能指导我更好地编写脚本,我将感激不尽......
请帮忙.
我在Windows 7(64位)上使用Python版本3.2.2
我已经看到这个语法出现在我最近看到的几个代码片段中,我很好奇它的作用.如果我有my_list = [1,2,3,4,5],并执行my_list[::-1],我会给出一个反转元素的列表[5,4,3,2,1].有人可以向我解释这实际上是做什么的,并显示[:]符号和[::]?之间的区别?或者至少向我推荐一个资源.
我敢肯定,如果我有一本好的Python书,它会在那里,但我没有.因为[::]被忽略了,所以不可能在谷歌搜索这样的东西.谢谢!
换句话说,我想完成以下内容:
a = [1, 2, 3, 7, 8]
b = [4, 5, 6]
# some magic here to insert list b into list a at index 3 so that
a = [1, 2, 3, 4, 5, 6, 7, 8]
Run Code Online (Sandbox Code Playgroud) 我想循环一个迭代器的"切片".我不确定这是否可行,因为我知道切片迭代器是不可能的.我想做的是:
def f():
for i in range(100):
yield(i)
x = f()
for i in x[95:]:
print(i)
Run Code Online (Sandbox Code Playgroud)
这当然失败了:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-37-15f166d16ed2> in <module>()
4 x = f()
5
----> 6 for i in x[95:]:
7 print(i)
TypeError: 'generator' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)
是否有一种pythonic方式来循环生成器的"切片"?
基本上我实际关注的生成器读取一个非常大的文件并逐行执行一些操作.我想测试文件的切片以确保事情按预期执行,但让它在整个文件上运行是非常耗时的.
编辑:
如上所述,我需要在一个文件上.我希望有一种方法可以使用生成器显式指定这个例子:
import skbio
f = 'seqs.fna'
seqs = skbio.io.read(f, format='fasta')
Run Code Online (Sandbox Code Playgroud)
seqs是一个生成器对象
for seq in itertools.islice(seqs, 30516420, 30516432):
#do a bunch of stuff here
pass
Run Code Online (Sandbox Code Playgroud)
上面的代码做了我需要的,但是仍然非常慢,因为生成器仍然遍历所有行.我希望只遍历指定的切片
非常简单地说,对于相同的训练数据帧df,当我使用X = df.iloc [:,:-1] .values时,它将选择直到数据帧的倒数第二列而不是最后一列(这是我想要的但是这是一个我以前从未见过的奇怪行为,而且我知道这是第二列的第二个值,而该行的最后一列的值是不同的.
但是,使用y = df.iloc [:, - 1] .values给出了最后一列的值的行向量,这正是我想要的.为什么X的负1给我第二列的第二个值呢?
