这个问题只是出于普遍的好奇心.在我目前的项目工作时,我刚刚注意到它(令人惊讶的是,我今天之前没有遇到过).
拿这个代码:
List = ["hi","stack","over","flow","how","you","doing"]
del List(len(List)-1)
Run Code Online (Sandbox Code Playgroud)
错误:
SyntaxError: can't delete function call
Run Code Online (Sandbox Code Playgroud)
我不明白为什么不允许你通过引用对函数的调用来删除列表的索引?我只是闭嘴并接受你不能这样做,还是我做了一些根本错误的事情?
我很抱歉,如果有一个简单的答案,但谷歌得到的帮助不大,或者这显然是显而易见的,我需要帮助.
我在我的网站的服务器脚本中有一小段python代码,看起来有点像这样:
console.append([str(x) for x in data])
console.append(str(max(data)))
Run Code Online (Sandbox Code Playgroud)
很简单,你可能会认为,但它输出的结果是这样的:
['3', '12', '3']
3
Run Code Online (Sandbox Code Playgroud)
由于某种原因,python认为3是[3,12,3]的最大值!
我做错了什么?或者这是python方面的不当行为?
我们需要使用正则表达式解析一个字符串,该字符串可以是:
XXX可以是任何字符(例如".")
我们如何制作匹配的正则表达式:
我试过的每一个正则表达式都在第一场比赛中捕获了所有内容(因为贪婪或太少因为不贪心)
我知道这是进步,但也许有人已经做到了.
下面的代码工作正常:
<?php session_start();
$_SESSION['color'] = 'blue';
class utilities
{
public static $color;
function display()
{
echo utilities::$color = $_SESSION['color'];
}
}
utilities::display(); ?>
Run Code Online (Sandbox Code Playgroud)
这是我想要但不起作用:
<?php session_start();
$_SESSION['color'] = 'blue';
class utilities {
public static $color = $_SESSION['color']; //see here
function display()
{
echo utilities::$color;
} } utilities::display(); ?>
Run Code Online (Sandbox Code Playgroud)
我收到此错误: Parse error: syntax error, unexpected T_VARIABLE in C:\Inetpub\vhosts\morsemfgco.com\httpdocs\secure2\scrap\class.php on line 7
Php不喜欢会话变量存储在函数之外.为什么?这是语法问题还是什么?我不想实例化对象,因为只是调用实用程序函数,我需要一些会话变量全局存储.init()每次运行函数时,我都不想调用函数来存储全局会话变量.解决方案?
如果您采用以下简单类:
class AltString:
def __init__(self, str = "", size = 0):
self._contents = str
self._size = size
self._list = [str]
def append(self, str):
self._list.append(str)
def output(self):
return "".join(self._list)
Run Code Online (Sandbox Code Playgroud)
我使用以下方法成功调用了类实例:
as = AltString("String1")
as.append("String2")
as.append("String3")
Run Code Online (Sandbox Code Playgroud)
当我然后output使用as.output而不是返回字符串来调用函数时,我得到以下内容:
unbound method AltString.output
Run Code Online (Sandbox Code Playgroud)
如果我使用它as.output()我得到以下错误:
TypeError: unbound method output() must be called with
AltString instance as first argument (got nothing instead)
Run Code Online (Sandbox Code Playgroud)
我做得对不对?
mystring = '14 | "预处理器帧数不增加;卡:主板,端口:2"|次要'
所以我有3个元素(id,message和level)除以pipe("|").我想得到每个元素,所以我写了这些小函数:
def get_msg(i):
x = i.split("|")
return x[1].strip().replace('"','')
def get_level(i):
x = i.split("|")
return x[2].strip()
#testing
print get_msg(mystring ) # Missing Input PID, PID: 20 : Port 4 of a static component
print get_level(mystring )# major
Run Code Online (Sandbox Code Playgroud)
现在它运作良好,但我觉得这不是解决它的pythonic方式,这两个函数怎么可以改进?正则表达式感觉就像在这里适合,但我很天真,因此无法应用.
当我在这个网站上测试我的javascript时,它的行为与我期望的一样.
但是,当我尝试在我的页面上测试时,它总是没有通过测试
function testName() {
if (new RegExp('^(?!^(\..+)?$)[^\x00-\x1f\\?*:^&!`~@#$$+=<>\?\*;|/]+$').test("me")) {
alert("good");
}
else {
alert("invalid characters");
} return false;
}
Run Code Online (Sandbox Code Playgroud)
该表达式应该测试特殊字符的文件名,如^&*!~+ = <>`等.我错过了一些愚蠢的东西吗?
我已经在两个字符串中存储了两个ip地址值
a = '116.95.123.111'
b = '116.95.122.112'
Run Code Online (Sandbox Code Playgroud)
我只是想比较ip地址的前两部分,即116.95两个字符串中的一部分,因为它在两个字符串中是相同的,我的比较应该返回true.如何在PHP中进行部分字符串比较?
假设你有一个像这样的dicts列表 {'id': 1, 'other_value':5}
也许吧;
items = [{'id': 1, 'other_value':5}, {'id': 1, 'other_value2':6}, {'id': 2, 'other_value':4}, {'id': 2, 'other_value2':3}]
Run Code Online (Sandbox Code Playgroud)
现在,您可以假设这是数据的一小部分.可能有数千人.这个结构也没有由我指定,它是给我的.
如果我只想获取ID,我可以这样做:
ids = [i[id] for i in items]
Run Code Online (Sandbox Code Playgroud)
但是,您会注意到原始数据中存在重复的ID.所以问题是; 你怎么能整齐地得到唯一的身份证?
我希望有类似的东西:
ids = [i[id] for i in items if not in LIST]
Run Code Online (Sandbox Code Playgroud)
但据我所知,没有办法访问生成器中的列表.
当然,我可以做一个for循环,并轻松地这样做.我只是想知道是否有更简洁的方法来做到这一点.